1. 程式人生 > >IOS 使用XIB 自定義View

IOS 使用XIB 自定義View

一般自定義View       程式碼方式 有

      在初始化的時候新增 子Views

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // add subviews
    }
    return self;
}

還有種 是自己畫。 過載   

- (void)drawRect:(CGRect)rect {

}

如果  佈局複雜的話  這種程式碼方式  可以鬱悶死人   看不到效果,慢慢調 ,程式碼冗長。。。  所以可以用到 XIB 來進行佈局。

  UIViewController   是我以前用的法子    但是  我只是想用到 View    用個View 每次都還要跟個Controller 。 還要儲存他  不讓他被釋放  。。。    

所以嘞  我找了個新方法   使用XIB 但不使用ViewController 當他的載體 let go

在你專案中 新建個 類   繼承UIView


在新建個XIB   XIB 的名稱要跟 你新建 類名 一樣



在XIB 中 選中View  改它Class 為你建的 類名


 然後  你就可以在上面拖來拖去     就按ViewController 中的來就是    你可以發現 IBOUT 中 Object  變成了  你的類

 

最後 改下 View 的Autosizing 項

要使用這個UIView  跟平常就不一樣了  因為  不是我們來  例項化它     

平常我就通過 這個靜態方法 來例項化

+(LKTextView *)instanceTextView
{
    NSArray* nibView =  [[NSBundle mainBundle] loadNibNamed:@"LKTextView" owner:nil options:nil];
    return [nibView objectAtIndex:0];
}
如果你要加點什麼東西  就過載 initWithCoder 
-(id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if(self)
    {
        //you init
    }
    return self;
}

使用的方法:
LKTextView* text = [LKTextView instanceTextView];
    text.frame = CGRectMake(100, 100, text.frame.size.width, text.frame.size.height);
    text.textView.text = @"input ";
   [self.view addSubview:text];


專案檔案: http://download.csdn.net/detail/li6185377/4705401

十月31號 。。。  一月一篇   。。 好難保持啊