1.为任何组件创建nib文件

那么如何通过XIB来创建自己的个性化的class呢。

1。Add----New Filss---Cocoa Touch Classes---Object-C  Class

创建一个 从 UIView继承的类  SelfView

2。Add---New Files----User Interface-----Empty XIB

创建一个空的  SelfView.xib 文件,记住,XIB的名称一定要跟 签名的类的名称一致,也就是一模一样。

一定要选 Empty XIB类型,如果不是选的这个,那么创建的XIB里面的已经存在的那个UIView将不能调整高度,它的高度固定死了。

3。  因为是空的XIB文件,所有往文件列表框中拖入一个 UIView的控件,然后将这个UIView的类名在属性器里面从UIView改为SelfView

2.2 为UIViewController创建xib文件

Add---New Files----User Interface-----View XIB

注意到这里还没完, 还需要创建outlets

选择视图,在右侧的Connections Inspector 面板窗口,拖拉New Referencing Outlet右侧的图标到File’s Owner图标上,在弹出的上下文菜单中,选择view,就可以创建view视图对象到视图控制器的输出口outlet连接了。

如果上述view视图到视图控制器(File’s Owner)的输出口连接不存在了,可以按照下图重新建立到输出口outlet的连接,如图所示。

选择视图,在右侧的Connections Inspector 面板窗口,拖拉New Referencing Outlet右侧的图标到File’s Owner图标上,在弹出的上下文菜单中,选择view,就可以创建view视图对象到视图控制器的输出口outlet连接了。

2.3 为UIViewController创建xib文件

个人实践:Add---New Files----User Interface-----View XIB

点击左侧File's Owner --- 右侧show the identity inspector --- 填写你的控制器的类名

再点击File's Owner --- show the connections inspector --- 按住option键, 连接到UIView

2.4. 为UIView添加手势

右下方Object Library -- 拖拽你想要的手势到左边Document Outlet,  拖拽左边的gesturerecognizer到你的uiview中, 然后option抓拽gesturerecognizer到.m文件的代码上, 生成一个监听方法,

2.5. autolayout使用

用法有3种

1.定位约束

点击下方第二个icon

left right top bottom, width, height, 选中多个组件, 可以添加equal width, equal height等于约束

2. 对齐约束

点击下方第一个icon

可选中horizontal center in container 水平居中对齐, 以此类推

3. 相对兄弟约束

按住control, 拖转一个组件到另一个组件, 长按shift, 同时选中, left, vertical spacing, 便可相对兄弟视图一定的水平边距, 并具左对齐

约束的颜色:

蓝色正常, 黄色和红色不正常,

可选择左方document outlet的黄色icon, 查看xcode报错通知,并选择性使用xcode推荐的解决方式

二. 为View创建 XIB

创建一个空的xib, 然后在xib里的view里的class命名为 View (view的class)

然后

XibView *xibView = [[[NSBundle mainBundle] loadNibNamed:@"XibView" owner:self options:nil] firstObject];

[self.view addSubview:xibView] ;

xibView.frame = CGRectMake(0, 0, 200, 200);

view会根据frame的不同重新布局

全民nib的更多相关文章

  1. ios中自定义tableView,CollectionView的cell什么时候用nib加载,什么时候用标识重用

    做了一段时间的iOS,在菜鸟的路上还有很长的路要走,把遇到的问题记下来,好记性不如烂笔头. 在项目开发中大家经常会用到tableView和collectionView两个控件,然而在cell的自定义上 ...

  2. loaded the "ViewController" nib but the view outlet was not set.'

    错误代码: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[U ...

  3. iOS UIViewController 和 nib 相关的3个方法

    iOS UIViewController 的 awakeFromNib 以及 - (id)initWithCoder:(NSCoder *)aDecoder 和 - (instancetype)ini ...

  4. iOS nib file owner

    nib文件中的file owner属性,设定后app在运行时加载nib文件的过程中会通过file owner重新建立nib文件中描述的控件与其在file owner中对应的IBOutlet或IBAct ...

  5. 从nib文件里加载collectionViewCell

    如何取出在xib文件里绘制的collectionViewCell ? 1.获得nib文件 UINib *nib = [[UINib NibWithName:@"xib文件的名字"] ...

  6. xib与nib的区别

    xib和nib都是Interface Builder的图形界面设计文档,nib这个名字来自于NeXTSTEP系统,在NeXTSTEP被Apple收购之前,一直使用nib作为Interface Buil ...

  7. nib文件的注册及加载

    1,注册 [(UIView *)view registerNib:[UINib nibWithNibName:(NSString *)nibName bundle:(NSBundle *)bundle ...

  8. loaded the "XXXView" nib but the view outlet was not set 解决方案

    '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "XXXView" nib but the view o ...

  9. ios xcode Could not load the "MyImage.png" image referenced from a nib in the bundle with identifier "com.mytest.MyProject"

    出现找不到xib指定的图片,需要指定图片的完整路径,不能只是图片名 详见:http://vocaro.com/trevor/blog/2012/10/21/xcode-groups-vs-folder ...

随机推荐

  1. UVA - 11354Bond最小生成树,LCA寻找近期公共祖先

    看懂题目意思.他的意思是求将全部的城市走一遍,危急度最小.而且给 你两个s,t后让你求在走的时候,从s到t过程中危急度最大的值,并输出它, 然后就是怎样攻克了,这个题目能够说简单,也能够说难 通过思考 ...

  2. TI C66x DSP 四种内存保护问题 -之- 针对CPU訪问外存(DDR3 or MSM)时的内存保护问题 - 举例

    在代码维护中遇到过这种问题,CPU訪问了corePac的外部内存空间0x75510C55地址,即CPU向corePac的L2内存控制器发起了对该内存的訪问,然后L2内存控制器将该请求发给corePac ...

  3. liunx安装pip

    安装pip之前要先安装Anaconda. 1.下载: # wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar. ...

  4. 通过JAVA调用命令行程序

    这是我在把数据导入到数据库时遇到问题,总结下来的.包含两个方法,一个方法是读取文件路径下的文件列表,主方法是执行cmd命令,在导入时想得到导入一个文件的时间,涉及到线程阻塞问题,这个问题理解不是很深, ...

  5. SQL查询刚開始学习的人指南读书笔记(三)值表达式

    CHAPTER 5 Getting More Than Simple Columns Intro Value  expression,it contains column names, literal ...

  6. centos 在CentOS下编译FFmpeg

    所需软件 准备 yum install autoconf automake gcc gcc-c++ git libtool make nasm pkgconfig zlib-devel  -y 新版还 ...

  7. session自己定义存储,怎样更好地进行session共享;读tomcat7源代码,org.apache.catalina.session.FileStore可知

    session自己定义存储.怎样更好地进行session共享: 读tomcat源代码,org.apache.catalina.session.FileStore可知 一.详见: 方法1 public ...

  8. 推荐一套免费跨平台的delphi 哈希及加密算法库

    delphi 目前提供了部分哈希及加密算法. 但是不是特别全,今天给大家推荐一套免费的.跨平台的算法库. https://github.com/winkelsdorf/DelphiEncryption ...

  9. live555 RTSP推送到Darwin出现404错误的解决

    我们将Darwin部署到公网,接收live555 RTSP/RTP推送的时候,经常会出现在SETUP步骤Darwin返回404错误,经过查找原因,主要是Darwin对live555推送的sdp信息中的 ...

  10. tornado安全应用之用户认证

    在这个例子中,我们将只通过存储在安全cookie里的用户名标识一个人.当某人首次在某个浏览器(或cookie过期后)访问我们的页面时,我们展示一个登录表单页面.表单作为到LoginHandler路由的 ...