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號 。。。  一月一篇   。。 好難保持啊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章