当前位置: 首页 > news >正文

Xcode中给UIView在xib中添加可视化的属性

给UIView在xib中添加可视化的属性

效果如下图:
code xib
可以直接设置view 的 borderColor 、borderWidth、cornerRadius,也可以单独指定view的某个角是圆角。减少了代码中的属性。

完整代码:

UIView+Border.h

#import <UIKit/UIKit.h>@interface UIView (Border)/// 可以在xib里面直接设置的:边线颜色
@property (nonatomic) IBInspectable UIColor *borderColor;/// 可以在xib里面直接设置的:边线宽度
@property (nonatomic) IBInspectable CGFloat borderWidth;/// 可以在xib里面直接设置的:圆角
@property (nonatomic) IBInspectable CGFloat cornerRadius;/// 可以在xib里面直接设置的:裁剪角
@property (nonatomic) IBInspectable BOOL topLeft;
@property (nonatomic) IBInspectable BOOL topRight;
@property (nonatomic) IBInspectable BOOL bottomLeft;
@property (nonatomic) IBInspectable BOOL bottomRight;@end

UIView+Border.m

#import "UIView+Border.h"@implementation UIView (Border)@dynamic borderColor, borderWidth, cornerRadius, topLeft, topRight, bottomLeft, bottomRight;- (void)setBorderColor:(UIColor *)borderColor{self.layer.borderColor = borderColor.CGColor;
}- (void)setBorderWidth:(CGFloat)borderWidth{self.layer.borderWidth = borderWidth;
}- (void)setCornerRadius:(CGFloat)cornerRadius {self.layer.cornerRadius = cornerRadius;
}- (void)setTopLeft:(BOOL)topLeft {[self updateMaskedCornersFor:topLeft corner:kCALayerMinXMinYCorner];
}- (void)setTopRight:(BOOL)topRight {[self updateMaskedCornersFor:topRight corner:kCALayerMaxXMinYCorner];
}- (void)setBottomLeft:(BOOL)bottomLeft {[self updateMaskedCornersFor:bottomLeft corner:kCALayerMinXMaxYCorner];
}- (void)setBottomRight:(BOOL)bottomRight {[self updateMaskedCornersFor:bottomRight corner:kCALayerMaxXMaxYCorner];
}- (void)updateMaskedCornersFor:(BOOL)shouldAdd corner:(CACornerMask)corner {if (@available(iOS 11.0, *)) {if (shouldAdd) {self.layer.maskedCorners |= corner;} else {self.layer.maskedCorners &= ~corner;}}
}@end

使用方法:

只需要把两个类倒入到项目中,xib中就会自动出现上面截图中的属性。

http://www.lryc.cn/news/367057.html

相关文章:

  • 中缀表达式和前缀后缀
  • 强化学习面试题
  • Pytorch中的广播机制
  • 2024年全国一高考数学压轴题
  • springboot+vue前后端项目接口校验通信数据完整性
  • 进程通信(IPC-Inter Process Communication)
  • idea debug时提示”Method breakpoints may dramatically slow down debugging“的解决办法
  • 计算机缺失msvcp100.dll如何解决?教你5种简单高效的修复方法
  • 对硬盘的设想2:纸存,硬指针,软指针
  • Python在股票交易分析中的应用:布林带与K线图的实战回测
  • 现代密码学-认证、消息认证码
  • 在Java中为什么对a赋值为10,在进行a++时还是等于10呢
  • 免费数据库同步软件
  • 如何轻松修改Windows远程连接的端口号
  • Leetcode 54. 螺旋矩阵(二维数组移动坐标)
  • 深度图的方法实现加雾,Synscapes数据集以及D455相机拍摄为例
  • QT: 读写ini配置文件(实现qml界面登录,修改)
  • DevOps 安全集成:从开发到部署,全生命周期安全守护
  • R语言数据分析15-xgboost模型预测
  • 重构大学数学基础_week04_从点积理解傅里叶变换
  • Shell以及Shell编程
  • 从记忆到想象:探索AI的智能未来
  • “安全生产月”专题报道:AI智能监控技术如何助力安全生产
  • 【转】ES, 广告索引
  • Unity学习要点
  • 简单使用phpqrcode 生成二维码图片
  • 软考架构-计算机网络考点
  • 渗透测试之内核安全系列课程:Rootkit技术初探(三)
  • 大模型日报2024-06-08
  • leetcode 1631.最小体力消耗路径