关闭

UIView加任意边框(Masonry)

标签: uiview界面边框任意
352人阅读 评论(0) 收藏 举报
分类:

最近项目中需要给View类型加边框的实在太多了,然后就给UIView写了个类目,方便使用。不足之处请指出^_^。

UIView+Extension.h

#import <UIKit/UIKit.h>
@interface UIView (Extension)
// 定义边框方向枚举
typedef NS_ENUM(NSInteger,LineDirection){
    LineDirectionTop = 1 << 1,
    LineDirectionBottom = 1 << 2,
    LineDirectionLeft = 1 << 3,
    LineDirectionRight = 1 << 4
};

/*!
 *  为本view添加边线
 *
 *  @param direction     边线方向 中间加 | 同时添加多个边框
 *  @param color         边框的颜色
 *  @param heightOrwidth 变量的宽度或者高度
 */
- (void)addLineDirection:(LineDirection)direction BackgroundColor:(UIColor *)color HeightOrWidth:(NSInteger)heightOrwidth;

@end

UIView+Extension.m

#import <Masonry.h>
#import "UIView+Extension.h"

@implementation UIView (Extension)

 1. (void)addLineDirection:(LineDirection)direction BackgroundColor:(UIColor *)color HeightOrWidth:(NSInteger)heightOrwidth{

    if (direction & LineDirectionTop) {
        UIImageView *line = [UIImageView new];
        line.backgroundColor = color;
        [self addSubview:line];
        [line mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.right.equalTo(self);
            make.top.equalTo(self);
            make.height.equalTo(@(heightOrwidth));
        }];
    }

    if (direction & LineDirectionBottom) {
        UIImageView *line = [UIImageView new];
        line.backgroundColor = color;
        [self addSubview:line];
        [line mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.right.equalTo(self);
            make.bottom.equalTo(self);
            make.height.equalTo(@(heightOrwidth));
        }];
    }

    if (direction & LineDirectionLeft) {
        UIImageView *line = [UIImageView new];
        line.backgroundColor = color;
        [self addSubview:line];
        [line mas_makeConstraints:^(MASConstraintMaker *make) {
            make.width.equalTo(@(heightOrwidth));
            make.left.equalTo(self);
            make.top.bottom.equalTo(self);
        }];
    }

    if (direction & LineDirectionRight) {
        UIImageView *line = [UIImageView new];
        line.backgroundColor = color;
        [self addSubview:line];
        [line mas_makeConstraints:^(MASConstraintMaker *make) {
            make.width.equalTo(@(heightOrwidth));
            make.right.equalTo(self);
            make.top.bottom.equalTo(self);
        }];
    }
}
@end

如何使用?

  1. 加单个边框
[UIView addLineDirection:(LineDirectionTop) BackgroundColor:UIColor HeightOrWidth:1];//顶部加边框
  1. 加多个边框,边框的方向用竖线隔开。
[UIView addLineDirection:(LineDirectionTop|LineDirectionBottom|  LineDirectionLeft|LineDirectionRight) BackgroundColor:UIColor HeightOrWidth:1];//上下左右加边框
1
0
查看评论

iOS - Masonry布局下的属性动画实现 ,UIVIew动态旋转

Masonry是iOS自动布局的一个轻量级的方法集合,它有自己的语法规范。在一次编写代码时,要求实现一个UIView位置的动态变化,即动画,而该UIView又是用Masonry布局的,经过多次尝试,方法如下: 1.将需要动画效果的UIView的Constronts重新remake 2.调...
  • icefishlily
  • icefishlily
  • 2016-05-24 13:27
  • 856

iOS View添加虚线边框

borderLayer.bounds设置为比view小一点,虚线比较明显 borderLayer.lineDashPattern的属性设置不同大小能修改虚线每一小段的长度 把cell.backView替换为对应的view就可以了 CAShapeLayer *borderLayer = ...
  • bitcser
  • bitcser
  • 2016-08-02 15:27
  • 2668

Masonry布局的UIView动画

在不使用自动布局的时候,如果要做一个移动的动画,很简单,直接修改移动控件的center就可以,但是用了Masonry进行自动布局,那就不能这么做了,不过方法依然很简单: - (void)selecteRate { [self.selectView mas_updateConstraint...
  • icefishlily
  • icefishlily
  • 2016-10-14 15:14
  • 2792

[Object-C]关于 UiView添加边框和设置边框的颜色

创建一个UIView         UIView *mainView = [[UIView alloc] initWithFrame:CGRectMake(10, 0, SCREEN_WIDTH - 20, 247)];    ...
  • Virgil_li
  • Virgil_li
  • 2015-06-16 14:30
  • 970

ios UIView...可变的圆角和边框,某个角,多个角,设置圆角和边框

UIView...可变的圆角和边框,某个角,多个角,设置圆角和边框(ios)
  • dashenid
  • dashenid
  • 2017-08-28 17:13
  • 431

iOS 设置UIView的边框和阴影

设置UIView的边框和阴影其实很简单,UIView
  • liyux4869
  • liyux4869
  • 2014-09-20 10:57
  • 2127

iOS开发 给View添加指定位置的边框线

封装一:直接封装成了一个方法 /// 边框类型(位移枚举) typedef NS_ENUM(NSInteger, UIBorderSideType) { UIBorderSideTypeAll = 0, UIBorderSideTypeTop = 1 << ...
  • syg90178aw
  • syg90178aw
  • 2017-05-18 13:18
  • 3087

UIView设置边框(整体设置和分开设置)

在开发中为UIView设置边框是常常用到的功能,如果要为UIView四下都设置边框,最简单的方法是使用CALayer的border属性: +(void)setViewBorder:(UIView *)view color:(UIColor *)color radius:(float)radius ...
  • guobing19871024
  • guobing19871024
  • 2017-06-28 20:09
  • 659

iOS-UIView加边框以及边框颜色

iOS-UIView加边框以及边框颜色UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200,200 )]; //边框宽 bgView.layer.borderWidth = 1; //边框颜色 ...
  • ws1352864983
  • ws1352864983
  • 2016-11-01 19:50
  • 1755

设置UIView四个角中任意角的圆角效果

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(120, 10, 80, 80)]; view.backgroundColor = [UIColor redColor]; [self.view addSubview:...
  • oJiaDe
  • oJiaDe
  • 2016-03-03 23:07
  • 247
    个人资料
    • 访问:31039次
    • 积分:616
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:5篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论