[iOS Xib加载/封装] xib加载以后无法赋值Laber属性的值
来源:互联网 发布:三维彩超上数据看男女 编辑:程序博客网 时间:2024/06/01 09:42
参考:iOS - xib史上最全说明
今天用xib封装一个view,已达到特定的需求, 然后发现 一开始的方法无法在加载xib之后对其中的Laber赋值,
错误❌ 的方式:
重写了init方法,使用alloc方法来创建这个自定义view的对象
-(void)setMallName:(NSString *)mallName{ _mallName = mallName;}- (instancetype)initWithFrame:(CGRect)frame titleName:(NSString*)name{ self = [super initWithFrame:frame]; if (self) { self.mallName = name; [self baseInit]; } return self;}-(void)baseInit{ NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"JFcustomHeadView" owner:self options:nil]; UIView *view = nil; for (id obj in arr) { if ([obj isKindOfClass:[UIView class]]) { view = obj; break; } } if (view != nil) { _mallNameLab.text = _mallName; [self addSubview:view]; }}
以上方法无法赋值
✅正确的方法如下
始终类方法创建,方可赋值
+(instancetype)viewWithTitlaName:(NSString*)name{ NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"JFcustomHeadView" owner:self options:nil]; JFcustomHeadView *jfView = [arr lastObject]; jfView.mallName = name; return jfView;}-(void)setMallName:(NSString *)mallName{ _mallName = mallName; _mallNameLab.text = _mallName;}
赋值的时机,使用类方法的好处就是,可以在类里面创建好对象,并直接赋值,而之前的init方法 则需要在创建好对象以后,赋值过程已经结束
0 0
- [iOS Xib加载/封装] xib加载以后无法赋值Laber属性的值
- ios xib文件加载xib
- iOS--xib的加载问题
- ios-xib的加载过程
- iOS 加载xib文件
- iOS 加载xib tableViewCell
- iOS 加载xib cell
- iOS在Xib加载自定义Xib视图
- 加载XIB的方法
- xib的加载
- 关于xib的加载
- iOS加载xib的两种方法
- ios 加载xib遇到的坑
- iOS 加载xib的两种方式
- iOS--控制器加载自定义view的xib
- iOS 加载NIB / xib 的 VIew
- xib 加载另一个 xib的各个场景
- IOS xib,文件加载笔记
- Random Decision Forest
- X1 Carbon wifi 8260 无线网卡驱动安装 backports
- vim 一些有用的删除操作
- 图片转Base64
- 原型、原型链
- [iOS Xib加载/封装] xib加载以后无法赋值Laber属性的值
- svn忽略ignore文件记住方式
- @Autowired 与@Resource的区别 及@Autowired 在成员变量和set方法的区别
- http中Last-Modified 与If-Modified-Since的说明
- abstract不可以和哪些关键字共存
- 你不必使用弱引用以避免内存泄漏
- HashMap和Hashtable的区别
- matlab虚拟现实之V-Realm Builder2使用NavigationInfo精确定位、建模
- java中用jdom 如何创建xml文档/将数据写入XML中