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

打印 上一主题 下一主题

主题 676|帖子 676|积分 2028

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

效果如下图:

可以直接设置view 的 borderColor 、borderWidth、cornerRadius,也可以单独指定view的某个角是圆角。减少了代码中的属性。
完整代码:

UIView+Border.h
  1. #import <UIKit/UIKit.h>
  2. @interface UIView (Border)
  3. /// 可以在xib里面直接设置的:边线颜色
  4. @property (nonatomic) IBInspectable UIColor *borderColor;
  5. /// 可以在xib里面直接设置的:边线宽度
  6. @property (nonatomic) IBInspectable CGFloat borderWidth;
  7. /// 可以在xib里面直接设置的:圆角
  8. @property (nonatomic) IBInspectable CGFloat cornerRadius;
  9. /// 可以在xib里面直接设置的:裁剪角
  10. @property (nonatomic) IBInspectable BOOL topLeft;
  11. @property (nonatomic) IBInspectable BOOL topRight;
  12. @property (nonatomic) IBInspectable BOOL bottomLeft;
  13. @property (nonatomic) IBInspectable BOOL bottomRight;
  14. @end
复制代码
UIView+Border.m
  1. #import "UIView+Border.h"
  2. @implementation UIView (Border)
  3. @dynamic borderColor, borderWidth, cornerRadius, topLeft, topRight, bottomLeft, bottomRight;
  4. - (void)setBorderColor:(UIColor *)borderColor{
  5.     self.layer.borderColor = borderColor.CGColor;
  6. }
  7. - (void)setBorderWidth:(CGFloat)borderWidth{
  8.     self.layer.borderWidth = borderWidth;
  9. }
  10. - (void)setCornerRadius:(CGFloat)cornerRadius {
  11.     self.layer.cornerRadius = cornerRadius;
  12. }
  13. - (void)setTopLeft:(BOOL)topLeft {
  14.     [self updateMaskedCornersFor:topLeft corner:kCALayerMinXMinYCorner];
  15. }
  16. - (void)setTopRight:(BOOL)topRight {
  17.     [self updateMaskedCornersFor:topRight corner:kCALayerMaxXMinYCorner];
  18. }
  19. - (void)setBottomLeft:(BOOL)bottomLeft {
  20.     [self updateMaskedCornersFor:bottomLeft corner:kCALayerMinXMaxYCorner];
  21. }
  22. - (void)setBottomRight:(BOOL)bottomRight {
  23.     [self updateMaskedCornersFor:bottomRight corner:kCALayerMaxXMaxYCorner];
  24. }
  25. - (void)updateMaskedCornersFor:(BOOL)shouldAdd corner:(CACornerMask)corner {
  26.     if (@available(iOS 11.0, *)) {
  27.         if (shouldAdd) {
  28.             self.layer.maskedCorners |= corner;
  29.         } else {
  30.             self.layer.maskedCorners &= ~corner;
  31.         }
  32.     }
  33. }
  34. @end
复制代码
使用方法:

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大号在练葵花宝典

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表