zoukankan      html  css  js  c++  java
  • 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

    如果一件事情你觉得难的完不成,你可以把它分为若干步,并不断寻找合适的方法。最后你发现你会是个超人。不要给自己找麻烦,但遇到麻烦绝不怕,更不要退缩。 电工查找电路不通点的最快方法是:分段诊断排除,快速定位。你有什么启示吗? 求知若饥,虚心若愚。 当你对一个事情掌控不足的时候,你需要做的就是“梳理”,并制定相应的规章制度,并使资源各司其职。
  • 相关阅读:
    [这不是Windows Phone 7]FitnessTrackerPlus(健身)三.登录及MD5加密
    [Windows Phone 7璀璨]北漂1.0在线歌词播放器三.歌词下载
    [Windows Phone 7璀璨]北漂1.0在线歌词播放器四.独立储存空间歌词的读取(完结)
    [原创]Xcode 4.6 安装 Boost 1.53.0
    [学习笔记]Silverlight4 RIA 开发全程解析[项目全程记录]第零章项目简介
    [笔记]Cocoa训练营cocos2d游戏编程篇动画
    [学习笔记]Silverlight4 RIA 开发全程解析[项目全程记录]第一章FitnessTrackerPlus应用程序概述
    [笔记]Cocoa训练营内存管理篇
    Android_相关路径
    Dynamics AX2009 Report step by step
  • 原文地址:https://www.cnblogs.com/wvqusrtg/p/4531551.html
Copyright © 2011-2022 走看看