iOS使用xib文件创建一个组件为子控件,进行复用

有些情况下,我们发现有一些界面上的控件是可以复用的

如果每次都拷贝这些控件过去,就是比较麻烦。所以,就用一个xib文件,创建一个view,把要复用的控件,放在里面组成一个view,然后在其他的ViewController里面引用就行了。

这样会方便很多。

第一步:创建一个SingleViewApplication,命名为“xib作为子控件复用”,在项目里New File,选择Cocoa Touch Class,命名为"AAView",点击Next,如图1所示:

              图 1

第二步:创建一个View,在项目里面New File,选择View,点击Next,如图2所示。命名为”AAView“,点击Create,如图3所示:

              图 2

              图 3

第三步:选中AAView.xib,点击View,更改Custom Class为“AAView”(即刚才所创建的AAView.h和AAView.m文件),如图4所示。如果要修改View的大小,可以设置属性Size为 “Freeform”。

              ?图 4

第四步: 在View里面添加4个Label,修改Text,如图5所示。为"小王"和"21"两个Label添加Outlets,按住Control拖到AAView.h文件,分别命名,如图6所示:

              图 5

              图 6

第五步:现在就是如何把这个View作为子控件加载到其他界面了,打开ViewController.m文件,把AAView.h” import进来,然后在ViewDidLoad里面写入以下代码:

1     AAView *aaView = [[[NSBundle mainBundle] loadNibNamed:@"AAView" owner:self options:nil] lastObject];
2
3     aaView.lbName.text = @"小明";
4
5     aaView.lbAge.text = @"25";
6
7     [self.view addSubview:aaView];

运行程序,结果如图7所示:

              图 7

至此,可以看见姓名和年龄都改变了,成功完成把xib文件作为一个子控件使用。如果你觉得位置不满意,可以更改创建的View的Frame属性,改变大小和位置。

有时候你有很多复杂的控件组成一个复杂的组件,然后进行复用,这就是一个很好的办法。

时间: 2024-10-08 21:43:50

iOS使用xib文件创建一个组件为子控件,进行复用的相关文章

IOS 读取xib里的子控件

interface ViewController () /**获取.plist数据*/ @property (nonatomic,strong) NSArray *aps; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //九宫格的总列数 int totalColumns=5; //1.1个格子的尺寸 CGFloat appW=50; CGFloat appH=60; //2.计算间隙

xib或storyBoard中往scrollView添加子控件

如何在xib或者storyBoard中的scrollView加拖拽子控件,并且能让它可以正常滚动,那么下面就为大家简单演示: 运行环境为:Xcode 7.3 备注:图片较大,如果看不清看可以右键鼠标在新标签中打开图片就很清晰了 1.如图我们往storyBoard拖拽一个scrollView并设置为上下左右约束距离父控件为0 2.当我们往scrollView中添加子控件时候却发现报错了 因为scrollView比较特殊,需要设置contentSize,这个错误和平常我们遇到的错误不一样,因为在这两

如何在UIScrollView的xib上添加子控件并添加AutoLayout约束

引言 自从苹果推出了autoLayout之后,作为开发者,深深的体验到了他的便捷之处,再也不用为适配不同屏幕布局UI而烦恼,我们仅仅需要和类关联一个xib文件,想上面放置我们需要的控件xib,并打好其相对于父视图以及同级视图的约束关系,这样我们就做好了不同屏幕的适配.但是奇怪的是UIScrollView上添加子控件,和之前的一样的操作,报的错却很吓人,那是为什么呢? 原因分析 因为UIScrollView想要能滑动的前提是要知道他的ContentSize的大小,我们直接向上面添加约束,他不知道自

iOS 设置视图半透明而子控件不透明

转载:http://www.jianshu.com/p/abe815018b2a 让一个控件半透明,通常我们第一个想到的方法就是调整控件的alpha值.当然如果你的视图上如果有其他子控件就会发现这样的方法是可能达不到你的预期,否则你应该看不到这篇文章了. 对视图直接设置alpha属性的值会导致其子控件也变得半透明,而通常我们的需求是:背景半透明而其子控件不透明. 先说解决办法: 1.用一张半透明的图片做背景. 这个方法当然可以达到要求,但是从编程初期前辈就教导我说在工程中尽量少加入资源,能不用图

iOS开发项目篇—43子控件的细节处理

iOS开发项目篇—43子控件的细节处理 一.升级UI 把之前的UI图片删除,换上新的图片(图片命名一致,规范)没有其他的影响. 删除之后,添加. 替换之后,做一次clear操作. 建议把沙盒中的包删除,删除之后再做一次clear操作. 二.调整转发(模块) 1.设置背景(使用提供的素材图片进行平铺) 为转发微博部分设置背景,考虑到这个部分整体上是一个UIView,可以尝试以下设置. 第一种尝试: 但是这样设置,因为图片是平铺的,所以整个背景会出现线条效果,影响显示,不可行. 第二种尝试: 注意:

iOS开发——实战技术OC篇&点击状态栏ScrollView(包括子控件)自动滚到顶部

点击状态栏ScrollView(包括子控件)自动滚到顶部 其实这种方式我们平时见的还是比较多的,而且适合用户的需求,所以就搬来琢磨了一下,感觉效果还不错 这里就直接将解决思路一一写出来不将代码分段展示了,在代码中我加了详细的注释objective-c的套路和swift基本一样,在最后会将Swift和objective-c的代码一起放上,如果需要直接解决问题的童鞋可以直接将代码拷贝到工程里即可 首先创建一个topWindow继承至NSObject,这里我们考虑将这个功能完全封装起来,所以所有的方法

IOS 自定义UITableViewCell 子控件无法接受到事件

该问题浪费了3个小时的时间 一 问题描述 自定义UITableViewCell,Cell 中有两个UIImageView 子控件,自控都需要实现双击,让图片全局展示. 二 错误代码 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {    BZEffectImgViewCell *cell = [BZEffectImgViewCell ce

iOS下子控件中的子控件的位置转换成在父控件的位置

CGRect focusFrame = [_scrollView convertRect:_joinView.frametoView:self.view]; 这里_scrollView是self.view的子控件 _joinView是_scrollView的子控件,这里是计算出_joinView在self.view的位置, 当然还有其他类似的方法 [view convertPoint:<#(CGPoint)#> fromView:<#(UIView *)#>] [view conv

使用AutoLayout布局适配时,如何提前获得AutoLayout完成适配后的子控件的真实frame

当我们使用AutoLayout做适配时,可能会有这样的需求,就是在想在适配完成前就取得子控件的真实frame,来做一些操作.比如我们想把一个正方形的UIImageView剪成一个圆形,这时候就需要这么做 self.imageView.layer.cornerRadius = self.imageView.frame.size.width / 2; self.imageView.clipsToBounds = YES 之前我们只要把上面两句放在layoutSubviews: 方法中设置即可,因为在