首先,我們還是在AppDelegate.m里創(chuàng)建好self.window和根視圖控制器吧.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];//!!!!
//初始化視圖控制器:
UIViewController *vc = [[UIViewController alloc] init];
self.window.rootViewController = vc;
在工程里創(chuàng)建一個自定義視圖類, 繼承與UIView.
這里我起名為LTView.因?yàn)槭亲远x視圖, 封裝的內(nèi)容當(dāng)然也是使用者決定了, 可以根據(jù)自己的需求進(jìn)行封裝. 我在LTView.h里寫了一個lable和一個textfield.
#import <UIKit/UIKit.h>
@interface LTView : UIView
@property(nonatomic, retain)UILabel *label;
@property(nonatomic, retain)UITextField *textField;
@end
接著,在LTView.m里重寫UIView的初始化方法.
//重寫UIView的初始化方法:
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
//初始化基本控件:
self.label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 60, frame.size.height)];
self.label.backgroundColor = [UIColor purpleColor];
[self addSubview:_label];
[_label release];
//初始化文本框:
self.textField = [[UITextField alloc] initWithFrame:CGRectMake(self.label.frame.origin.x + self.label.frame.size.width, self.label.frame.origin.y, frame.size.width - self.label.frame.size.width, frame.size.height)];
self.textField.backgroundColor = [UIColor greenColor];
[self addSubview:_textField];
}
return self;
}
之后,把LTView.h引入到AppDelegate.m(要使用的地方)里, 再在AppDelegate.m里初始化自定義的視圖就可以了.
引入這里我截個圖吧.
//初始化自定義視圖:
LTView *view = [[LTView alloc] initWithFrame:CGRectMake(20, 50, 300, 60)];
view.label.text = @"標(biāo)簽";
[self.window addSubview:view];
很多情況, 我們需要用到控件的組合, 比如通訊錄的聯(lián)系人信息, 頭像和號碼等都是由各個控件組合來的, 如果要挨個創(chuàng)建要考慮控件的坐標(biāo)等問題, 會很麻煩, 為了方便我們可以對其進(jìn)行封裝, 這時候自定義視圖就能幫到我們了, 當(dāng)然, 上邊的自定義視圖比較簡單, 大家可以根據(jù)自己的需要來創(chuàng)建, 我也是剛開始學(xué), 很多地方都還不太懂, 希望能和大家一起交流, 共同進(jìn)步.