Xcode5 创建模板和UIView 关联XIB
转自:http://www.cnblogs.com/china-ldw/p/3533896.html
在做ios应用开发的过程,难免遇到要创建 子view 和 自定义view的时候,归根到底,我们需要得到一个UIView;
要得到这个UIView,大致有三种方法:
1,创建一个UIViewController,带上一个XIB,得到的UIView为 UIViewController.view;
2,创建一个XIB,然后直接load这个XIB;代码如下
NSArray *nibView = [[NSBundlemainBundle] loadNibNamed:@"xib文件名字"owner:self options:nil]; UIView *view = [[nibView objectAtIndex:0] retain];
3,创建一个继承于UIView的类,在.h和.m文件用代码写;
这三种的方法,相信大家大致有个优劣判断;
我这里用到的是一种结合了三者的方法:
- 用UIView的类关联XIB;
这个方法网上也有多种实现方法。我这里再提供一种:
1,创建一个继承于UIView的类MTTestView,这里有了MTTestView.h和MTTestView.m文件;
2,创建一个XIB,命名为MTTestView.xib;
3,打开MTTestView.xib,在File's Owner设置Class为UIViewController;
设置rootView的Class为你创建的类名MTTestView;
这样就将类和XIB关联起来了;最后我们要load这个view了.
这里的load方法我做成了一个category(因为用到的地方比较多):
UIView+LoadFromNib.h
1 #import <UIKit/UIKit.h>2 3 @interface UIView (LoadFromNib)4 5 + (id)loadFromNib;6 7 @end
UIView+LoadFromNib.m
1 #import "UIView+LoadFromNib.h" 2 3 @implementation UIView (LoadFromNib) 4 5 + (id)loadFromNib 6 { 7 id view = nil; 8 NSString *xibName = NSStringFromClass([self class]); 9 UIViewController *temporaryController = [[UIViewController alloc] initWithNibName:xibName bundle:nil];10 if(temporaryController)11 {12 view = temporaryController.view;13 }14 return view;15 }16 17 @end
最后,用法为MTTestView *view = [MTTestViewloadFromNib];这样就得到了我们想要的view了;
到这里,还没完。创建文件,设置XIB这些不需要动脑且重复的体力活,不应该要人来做,交给电脑就行了。
这里就涉及到了xcode的文件模板了,关于创建详解,请自行google,参考如下
http://www.cnblogs.com/powerauras/p/3358129.html
根据上文中的要求,我们要创建一个带xib的UIView(这里最终目的)。
1,首先打开终端,找到xcode ios模板并打开:命令为
open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates(这是我Mac上的路径)
进入Objective-C class.xctemplate目录下;打开TemplateInfo.plist
在Options->Item3->RequiredOptions->cocoaTouchSubclass中加一个UIView(原始的只有UIViewController为UITableViewController);
相信大家明白这样做的目的:让创建UIView时 With XIB for user interface 这个选项可选;
最后一步:在Objective-C class.xctemplate目录下,添加一个目录UIViewwithXIB
这里边就是我们创建的UIViewwithXIB模板了;当然需要修改___FILEBASENAME___.xib了;(上文中已提到,不重复了);
附上示例:https://github.com/ludawei/MTTestView/tree/master
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
Xcode5 创建模板和UIView 关联XIB相关推荐
- (zabix) python创建模板 监控项关联模板、触发器关联模板
实际上从主机进入监控项界面,显示的才是真正的主机id 创建一个模板对应代码(可以用csv生成,用for循环) 相关参数: # -*- coding: utf-8 -* # -*- coding: gb ...
- 前嗅ForeSpider教程:创建模板
今天,小编为大家带来的教程是:如何在前嗅ForeSpider中创建模板.主要内容有:模板的概念,模板的配置方式,模板的高级选项,具体内容如下: 一,模板的概念 模板列表的层级相当于网页跳转的层级.模板 ...
- Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)
1.Django模板 网站如何向客户端返回一个漂亮的页面呢? 漂亮的页面需要html.css.js. 可以把这一堆字段串全都写到视图中, 作为HttpResponse()的参数,响应给客户端. 存在的 ...
- 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
要创建动态模板,请创建以后需要时可实例化的模板类. 创建模板类 创建实现 System.Web.UI.ITemplate 接口的新类. 您也可以将值传递到类的构造函数,类可以使用该值来确定要创建的模板 ...
- 圆形卡尺测量后创建模板
read_image (Image, 'QQ图片20201113111404.jpg') dev_close_window () dev_open_window_fit_image (Image, 0 ...
- 创建模板_在 GNOME 中创建文档模板 | Linux 中国
导读:制作模板可以让你更快地开始写作新的文档. 本文字数:1305,阅读时长大约:1分钟https://linux.cn/article-12699-1.html作者:Alan Formy-duval ...
- woocommerce分类页面模板_Word排版之道1:学会创建模板,事半功倍
排版第一步,最好的做法是先创建模板.创建模板的主要目的是为重复创建同类型的文档奠定基础.对于偶尔制作一次会议通知或包含几行内容的文档的人而言可忽略,但学会创建模板仍然会很有帮助,其最大的好处是可以建立 ...
- Linux创建模板封装虚拟机
本节介绍了封装(seal) Linux 虚拟机和 Windows 虚拟机的方法.封装就是在基于虚拟机创建模板前,把只对特定虚拟机有效的信息删除的过程.这可以防止在通过同一个模板创建多个虚拟机时,相同的 ...
- ABBYY FlexiCapture Engine 10.0:创建模板识别的新工具
实现数据提取快速配置(适用于简单类型的文档)是ABBYY FlexiCapture Engine 10.0这个软件开发工具包的一大特点.为了让用户可以充分使用该功能,ABBYY FlexiCaptur ...
- OC 教程 UI快速创建模板
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
最新文章
- CentOS7修改时区,你会吗?
- 分布式架构的对比-IBM XIV
- php设置at定时,laravel定时任务
- 软件工程小组问世第六章之概要设计青铜篇
- sklearn-GridSearchCV调节超参数
- 【python图像处理】彩色映射(续篇)
- 组播理论知识的补充笔记
- Tip of the day的bug
- SABAPDEMOS 这个包下好多好玩儿的,可以看看
- Linux磁盘管理之df命令详解和使用实例(查看磁盘空间占用情况)
- 玩转群晖NAS套件系列一:cloud sync套件的安装与使用保姆级教程!
- vtd xml java_新兴XML处理方法VTD-XML介绍
- HTTP长连接和Websocket
- SENT:Sentence-level Distant Relation Extraction via Negtive Training-ACL2021
- php判断是否夏令时,关于php:时区和夏令时问题
- 课程设计感想(大二)
- Discuznbsp;x2.5单页制作的教程
- jquery中当点击子节点时如何实现删除父节点的问题
- 探索在原生网页中使用自定义数据属性
- 计算机配置好坏怎么看,怎么看电脑配置,电脑配置好坏信息一目了然-腾讯电脑管家...
热门文章
- GAN原理,优缺点、应用总结
- 杂谈随想第002篇:博客访问量破万的想法
- 所有的 Python 库都整理
- 一种Ansys安装 “Ans.SceneGraphChart.SceneGraphAddin. The software will exit.“报错解决方案
- cherry-pick 用法
- Python jiba 分词
- Android 项目中依赖项目、依赖库、依赖module中的jar包(第三方库)
- Photoshop-置换贴图-原理
- 第7章概率和样本:样本均值的分布
- android设置自动亮度,android5.1 自动亮度调节简析