iOS使用xib自定义uiview

举报
清雨小竹 发表于 2022/09/25 00:00:04 2022/09/25
【摘要】 一般自定义View       代码方式 有       在初始化的时候添加 子Views [cpp]  view plain copy ...

一般自定义View       代码方式 有

      在初始化的时候添加 子Views


[cpp]  view plain copy
  1. - (id)initWithFrame:(CGRect)frame  
  2. {  
  3.     self = [super initWithFrame:frame];  
  4.     if (self) {  
  5.         // add subviews  
  6.     }  
  7.     return self;  
  8. }  

还有种 是自己画。 重载   

- (void)drawRect:(CGRect)rect {

}

如果  布局复杂的话  这种代码方式  可以郁闷死人   看不到效果,慢慢调 ,代码冗长。。。  所以可以用到 XIB 来进行布局。

  UIViewController   是我以前用的法子    但是  我只是想用到 View    用个View 每次都还要跟个Controller 。 还要保存他  不让他被释放  。。。    


所以嘞  我找了个新方法   使用XIB 但不使用ViewController 当他的载体 let go

在你项目中 新建个 类   继承UIView


在新建个XIB   XIB 的名称要跟 你新建 类名 一样



在XIB 中 选中View  改它Class 为你建的 类名


 然后  你就可以在上面拖来拖去     就按ViewController 中的来就是    你可以发现 IBOUT 中 Object  变成了  你的类

 


最后 改下 View 的Autosizing 项


要使用这个UIView  跟平常就不一样了  因为  不是我们来  实例化它     

平常我就通过 这个静态方法 来实例化

 

[cpp]  view plain copy
  1. +(LKTextView *)instanceTextView  
  2. {  
  3.     NSArray* nibView =  [[NSBundle mainBundle] loadNibNamed:@"LKTextView" owner:nil options:nil];  
  4.     return [nibView objectAtIndex:0];  
  5. }  
如果你要加点什么东西  就重载 initWithCoder 

 

[cpp]  view plain copy
  1. -(id)initWithCoder:(NSCoder *)aDecoder  
  2. {  
  3.     self = [super initWithCoder:aDecoder];  
  4.     if(self)  
  5.     {  
  6.         //you init  
  7.     }  
  8.     return self;  
  9. }  

使用的方法:

 

[cpp]  view plain copy
  1. LKTextView* text = [LKTextView instanceTextView];  
  2.     text.frame = CGRectMake(100, 100, text.frame.size.width, text.frame.size.height);  
  3.     text.textView.text = @"input ";  
  4.    [self.view addSubview:text]; 

文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/9111837

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。