ToB企服应用市场:ToB评测及商务社交产业平台

标题: Xcode中给UIView在xib中添加可视化的属性 [打印本页]

作者: 大号在练葵花宝典    时间: 2024-6-14 23:09
标题: Xcode中给UIView在xib中添加可视化的属性
给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企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4