在項目開發(fā)中,我們經(jīng)常會碰到,某些視圖View 內(nèi)部基本空間都一樣,只是數(shù)據(jù)不同,這時,我們可以用xib來將這個視圖封裝起來多次重用,
(例如,大小固定 控件固定的TableViewCell)
這可以盡可能的加快我們的項目開發(fā)進度。
A. xib中的File’s owner是告訴xib中的控件可以跟ViewController這個類的屬性和方法連線。雖然可以跟這個ViewController類里的方法和屬性連線,但是不代表能直接調(diào)用這里邊的方法。必須還要進行一步操作.
B. 加載xib時,需要傳入一個owner對象,就能調(diào)用這個對象里的方法.

如果不傳入own會報野指針錯誤。


rowView.h
1 #import <UIKit/UIKit.h>2 3 @interface RowView : UIView4 + (id)rowViewWithIcon:(NSString *)icon name:(NSString *)name;5 6 7 @PRoperty (nonatomic, weak) IBOutlet UIButton *iconBtn;8 9 @property (nonatomic, weak) IBOutlet UILabel *nameLabel;
rowView.m
1 #import "RowView.h" 2 3 @implementation RowView 4 5 + (id)rowViewWithIcon:(NSString *)icon name:(NSString *)name 6 { 7 RowView *view = [[NSBundle mainBundle] loadNibNamed:@"RowView" owner:nil options:nil][0]; 8 9 // 1.設(shè)置圖標10 // UIButton *iconBtn = (UIButton *)[view viewWithTag:1];11 [view.iconBtn setImage:[UIImage imageNamed:icon] forState:UIControlStateNormal];12 13 // 2.設(shè)置姓名14 // UILabel *nameLabel = (UILabel *)[view viewWithTag:2];15 view.nameLabel.text = name;16 17 return view;18 }
#import "ViewController.h"#import "RowView.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad]; RowView *row = [RowView rowViewWithIcon:@"017.png" name:@"哈哈哈"]; [self.view addSubview:row];}
只需要傳參數(shù)進去,即可生成各種數(shù)據(jù)不同的xib
清澈Saup
新聞熱點
疑難解答
圖片精選