从xib初始化的UIView如何继承?
一、如何从xib自定义一个CustomView
1)首先创建继承自UIView的子类CustomView
2)创建名字为CustomView的View的Interface文件
3)在xib的资源文件中修改class为CustomView
4)编辑xib,拖拽控件
代码如下:
1 | @property (weak, nonatomic ) IBOutlet UIActivityIndicatorView *activity; |
xib 如下
注意class类型
5)使用这个自定义的view
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | - ( void )viewDidLoad { [ super viewDidLoad]; // Do any additional setup after loading the view. [ self test2]; } - ( void )test1 { CustomView *v = [[[ NSBundle mainBundle] loadNibNamed:@ "CustomView" owner: self options: nil ] objectAtIndex:0]; [ self .view addSubview:v]; v.center = self .view.center; v.activity.backgroundColor = [UIColor redColor]; } |
6)结果
二、如何继承一个从xib初始化的view
目前还没有这样的方法,苹果已经不推荐使用xib初始化view这样的方式了。
放弃继承,使用组合的方式来实现
头文件
1 2 3 4 5 6 7 | @interface MyView : UIView { UIView *view; UILabel *l; } @property ( nonatomic , retain) IBOutlet UIView *view; @property ( nonatomic , retain) IBOutlet UILabel *l; |
实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #import "MyView.h" @implementation MyView @synthesize l, view; - ( id )initWithFrame:(CGRect)frame { self = [ super initWithFrame:frame]; if ( self ) { // Initialization code. // [[ NSBundle mainBundle] loadNibNamed:@ "MyView" owner: self options: nil ]; [ self addSubview: self .view]; } return self ; } - ( void ) awakeFromNib { [ super awakeFromNib]; // commenters report the next line causes infinite recursion, so removing it // [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]; [ self addSubview: self .view]; } - ( void ) dealloc { [l release]; [view release]; [ super dealloc]; } |
分类:
IOS开发问题积累
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2017-04-18 Xcode 自动化构建问题梳理