用xib自定义 可以在xib中使用的view
2015-12-24 17:41
435 查看
用xib自定义 可以在xib中使用的view
本文将实现一个自定义view,大致如下:上面是一个label,下面是一个slider,移动滑块,label文字会根据滑块的变化而变化。
1)自定义一个view,然后创建一个基于UIView的xib文件,然后在xib中添加label和slider,添加AutoLayout;
2) 设置xib文件的File’s Owner类型为自定义view的类型;具体操作如下:
3) 重写自定义view的initWithCoder:方法
- (instancetype)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; if (self) { //获取用xib自定义的view UIView *containerView = [[NSBundle mainBundle] loadNibNamed:@"CustomXibView" owner:self options:nil].lastObject; [self addSubview:containerView]; //如果是从代码层面开始使用Autolayout,需要对使用的View的translatesAutoresizingMaskIntoConstraints的属性设置为NO. //即可开始通过代码添加Constraint,否则View还是会按照以往的autoresizingMask进行计算. //而在Interface Builder中勾选了Ues Autolayout,IB生成的控件的translatesAutoresizingMaskIntoConstraints属性都会被默认设置NO. [containerView setTranslatesAutoresizingMaskIntoConstraints:NO]; //添加约束 NSDictionary *viewDictionary = NSDictionaryOfVariableBindings(containerView); NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[containerView]-0-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:viewDictionary]; NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[containerView]-0-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:viewDictionary]; [self addConstraints:horizontalConstraints]; [self addConstraints:verticalConstraints]; } return self; }
4)然后就可以在其他xib文件里使用这个自定义的view了。
相关文章推荐
- 加载带有手势识别器的XIB文件需注意哪些问题
- Auto Layout on iOS Versions prior to 6.0 解决办法
- CALayer与UIView的关系
- UIView的bounds和frame区别
- uiview
- uiview生命周期
- UIView翻译 (参考)
- android自定义View的用法
- android自定义控件实例
- iOS 转变UIView到UIImage
- UIView动画
- 自定义view的自定义属性的引用
- initWithFrame 和 initWithCoder
- android在自定义View的xml中设置自定义的成员属性
- [CS193P] 第六堂課摘要及心得筆記
- UI第一天
- 棋盘
- ios实现button变换颜色并可以放大、缩小、旋转
- uiview contentViewmode
- iphone开发小记 基础知识2