• [控件] 创建出条形间隔效果的背景LineBackgroundView


    创建出条形间隔效果的背景LineBackgroundView

    效果:

    使用:

    //
    //  ViewController.m
    //  LineBackgroundView
    //
    //  Created by XianMingYou on 15/3/4.
    //  Copyright (c) 2015年 XianMingYou. All rights reserved.
    //
    
    #import "ViewController.h"
    #import "LineBackgroundView.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        UIColor *color             = [[UIColor blackColor] colorWithAlphaComponent:0.05f];
        LineBackgroundView *bgView = [LineBackgroundView createViewWithFrame:self.view.bounds
                                                                   LineWidth:4
                                                                     lineGap:4
                                                                   lineColor:color];
        [self.view addSubview:bgView];
    }
    
    @end

    源码:

    //
    //  LineBackgroundView.h
    //  LineBackgroundView
    //
    //  Created by XianMingYou on 15/3/4.
    //  Copyright (c) 2015年 XianMingYou. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    
    @interface LineBackgroundView : UIView
    
    @property (nonatomic) CGFloat            lineWidth;
    @property (nonatomic) CGFloat            lineGap;
    @property (nonatomic, strong) UIColor   *lineColor;
    
    - (void)buildView;
    + (instancetype)createViewWithFrame:(CGRect)frame
                              LineWidth:(CGFloat)width
                                lineGap:(CGFloat)lineGap
                              lineColor:(UIColor *)color;
    
    @end
    //
    //  LineBackgroundView.m
    //  LineBackgroundView
    //
    //  Created by XianMingYou on 15/3/4.
    //  Copyright (c) 2015年 XianMingYou. All rights reserved.
    //
    
    #import "LineBackgroundView.h"
    
    
    // 将度数转换为弧度
    #define   RADIAN(degrees)  ((M_PI * (degrees))/ 180.f)
    
    
    @interface LineBackgroundView ()
    
    @property (nonatomic, strong) UIView *containerView;
    
    @end
    
    @implementation LineBackgroundView
    
    - (instancetype)initWithFrame:(CGRect)frame {
        self = [super initWithFrame:frame];
        if (self) {
            self.layer.masksToBounds = YES;
        }
        return self;
    }
    
    - (void)buildView {
        
        if (self.lineGap <= 0 && self.lineWidth <= 0) {
            return;
        }
        
        // 获取长度
        CGFloat width  = self.bounds.size.width;
        CGFloat height = self.bounds.size.height;
        CGFloat containerViewWidth = (width + height) * 0.75;
        
        // 初始化containView
        self.containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,
                                                                      containerViewWidth,
                                                                      containerViewWidth)];
        self.containerView.layer.borderWidth = 1.f;
        self.containerView.center            = CGPointMake(self.bounds.size.width / 2.f,
                                                           self.bounds.size.height / 2.f);
        
        NSInteger lineViewCount = containerViewWidth / (self.lineGap + self.lineWidth);
        for (int count = 0; count < lineViewCount + 1; count++) {
            UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(count * (self.lineGap + self.lineWidth),
                                                                        0,
                                                                        self.lineWidth,
                                                                        containerViewWidth)];
            if (self.lineColor) {
                tempView.backgroundColor = self.lineColor;
            } else {
                tempView.backgroundColor = [UIColor blackColor];
            }
    
            [self.containerView addSubview:tempView];
        }
        
        self.containerView.transform = CGAffineTransformRotate(self.containerView.transform, RADIAN(45));
        [self addSubview:self.containerView];
    }
    
    + (instancetype)createViewWithFrame:(CGRect)frame
                              LineWidth:(CGFloat)width
                                lineGap:(CGFloat)lineGap
                              lineColor:(UIColor *)color {
        LineBackgroundView *bgView = [[LineBackgroundView alloc] initWithFrame:frame];
        bgView.lineWidth           = width;
        bgView.lineGap             = lineGap;
        bgView.lineColor           = color;
        [bgView buildView];
    
        return bgView;
    }
    
    @end

  • 相关阅读:
    C# MVC解决跨站请求伪造(appscan)
    .net中关于Url传参问题
    二月项目完成小结
    sql 获取时间
    ajax提交form表单
    C# 视图遍历List数组
    C#遍历指定文件夹中的所有文件
    C#关于文件的操作
    .net 文件上传到服务器【转】
    Server.MapPath获取各级目录【转】
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4314139.html
Copyright © 2020-2023  润新知