iOS中 xib自定义View在storyboard中的使用
1,创建UIView 的SubClass 命名为MyView
2, new一个名为MyView的xib
p1
3,配置xib的属性
p2
4,为View 添加背景色,添加一个按钮并定制按钮约束,这里我添加的约束为垂直居中,Button与View等宽,Button左边起点位置为0。
p3
5,设置xib中的File’s owner = MyView, 拖拽view 到关联的代码中命名为contentView
p4
6, 在storyboard 中对ViewController 添加一个View,之后把View 的class 设为MyView
7,MyView.m中添加代码
- (void)awakeFromNib
{
NSLog(@"awake from nib");
[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];
[self addSubview:self.contentView];
}
这样执行后就可以看到该View了,但是会有一个严重的问题,那就是MyView 在显示时没有做到AutoLayout。仅仅是按照xib中的尺寸来显示,而在实际应用中可能我们会期待在ViewController中使用的自定义View内部亦可以自动匹配大小。
对于上面的问题,我的解决方法是重写setFrame方法,如下:
8,MyView.m中添加代码
- (void)setFrame:(CGRect)frame
{
[super setFrame:frame];
CGRect rect = frame;
rect.origin.x = ;
rect.origin.y = ;
self.contentView.frame = rect;
}
StoryBoard中拖拽MyView IBOutLet到 ViewController中
p5
ViewDidLoad 中增加代码
[self.myView setFrame:self.myView.frame];
如果你的自定view释放到了tableviewCell上面, 如图:

要是这样的话, 就要在tableviewCell的代码中的写:
// 如果有尺寸之类的要在该方法中写
- (void)layoutSubviews {
[super layoutSubviews];
// 让自定义view中的尺寸适应sb中的约束
[self.myView setFrame:self.myView.frame];
}
这样就可以让storyBoard 中设置的约束正确的影响到MyView。
iOS中 xib自定义View在storyboard中的使用的更多相关文章
- iOS 用xib自定义View
网上有很多关于实现用xib自定义View,那我为什么还要写呢?第一,我用他们的方法都没有实现.第二,用xib遇到了很多问题,想分享给大家. 用xib自定义View:FHCustomView ...
- IOS 使用XIB 自定义View
一般自定义View 代码方式 有 在初始化的时候添加 子Views - (id)initWithFrame:(CGRect)frame { self = [super initWithFr ...
- iOS 用xib自定义view控件 debug笔记
1.在view不是很复杂的情况下,如果多次检查后依旧出现coding-compliant这种情况,干脆彻底删除这个xib重新新建一个xib来做一遍.(至今未明真相) 2.初始化xib中的view的大致 ...
- iOS 在UITableViewCell中加入自定义view时view的frame设定注意
由于需要重用同一个布局,于是在cellForRowAtIndexPath中把自定义view加在了cell上,我是这样设定view的frame的 var screenFrame = UIScreen.m ...
- iOS开发——UI基础-自定义构造方法,layoutSubviews,Xib文件,利用Xib自定义View
一.自定义构造方法 有时候需要快速创建对象,可以自定义构造方法 + (instancetype)shopView { return [[self alloc] init]; } - (instance ...
- Android自定义View研究--View中的原点坐标和XML中布局自定义View时View触摸原点问题
这里只做个汇总~.~独一无二 文章出处:http://blog.csdn.net/djy1992/article/details/9715047 Android自定义View研究--View中的原点坐 ...
- 详解iOS开发之自定义View
iOS开发之自定义View是本文要将介绍的内容,iOS SDK中的View是UIView,我们可以很方便的自定义一个View.创建一个 Window-based Application程序,在其中添加 ...
- iOS开发小技巧--获取自定义的BarButtonItem中的自定义View的方法(customView)
如果BarButtonItem是通过[[UIBarButtonItem alloc] initWithCustomView:(nonnull UIView *)]方法设置的.某些情况下需要修改BarB ...
- swift 之xib自定义view可视化到storyboard
首先直入正题:@IBInspectable & @IBDesignable 对于 @IBInspectable 和 @IBDesignable 可详见官方文档 : Creating a Cus ...
随机推荐
- php 读写 csv文件
读取csv function input_csv($handle) { $out = array (); $n = 0; while ($data = fgetcsv($handle, 10000)) ...
- [How to] 动态布局可变高度的cell的应用
1.简介 代码:https://github.com/xufeng79x/DynamicChangeableCell 微博界面,微信和QQ聊天界面,这些界面的布局大都不确定,且每一条消息的高度也不一样 ...
- Oracle事务处理
原文转自:(http://www.cnblogs.com/ITtangtang/archive/2012/04/23/2466554.html) 一.事务概念事务用于保证数据的一致性,它由一组相关的d ...
- ios IAP 内购验证
参考我之前的笔记 苹果内购笔记,在客户端向苹果购买成功之后,我们需要进行二次验证. 二次验证 IOS在沙箱环境下购买成功之后,向苹果进行二次验证,确认用户是否购买成功. 当应用向Apple服务器请求购 ...
- scala中常用特殊符号
参考资料: scala中常用但其他语言不常见的符号含义 Scala学习六:Scala中的特殊字符 =>(匿名函数) 参考文档:scala => 用法 匿名函数 => 匿名函数,在Sp ...
- hdu 1252(BFS)
Hike on a Graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- CentOS7.5安装teamviwer13
1.首先到官网下载teamviewer13的rpm包 https://www.teamviewer.com/zhcn/download/linux/ 2.安装 安装依赖包 http://mirror. ...
- bzoj 1491
思路:先求出每两点之间的最短路,建出n个最短路径图,然后枚举起点终点和中间点,计算条数用到拓扑图dp... 看别人的方法很巧妙地用floyd在计算最短路的时候就可以直接计算条数啦... #includ ...
- 一款你不容错过的Laravel后台管理扩展包 —— Voyager
http://laravelacademy.org/post/6401.html Posted on 2016年11月1日 by 学院君 1.简介 Voyager是一个你不容错过的Laravel后 ...
- 洛谷——P1208 [USACO1.3]混合牛奶 Mixing Milk
P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业 ...