用模型取代字典的好處

//使用字典的壞處
//通常狀況下,設置數據和取出數據都使用「字符串類型的key」,編寫這些key時,編譯器不會有任何友善提示,須要手敲
//dict[@"name"] = @"Jack";
//NSString *name = dict[@"name"];
//手敲字符串key,key容易寫錯
//Key若是寫錯了,編譯器不會有任何警告和報錯,形成設錯數據或者取錯數據
//
//使用模型的好處
//所謂模型,其實就是數據模型,專門用來存放數據的對象,用它來表示數據會更加專業
//模型設置數據和取出數據都是經過它的屬性,屬性名若是寫錯了,編譯器會立刻報錯,所以,保證了數據的正確性
//使用模型訪問屬性時,編譯器會提供一系列的提示,提升編碼效率
app.name = @"Jack」;
NSString *name = app.name;數組


//字典轉模型
//字典轉模型的過程最好封裝在模型內部app

//模型應該提供一個能夠傳入字典參數的構造方法
- (instancetype)initWithDict:(NSDictionary *)dict;
+ (instancetype)xxxWithDict:(NSDictionary *)dict;工具

 

instancetype在類型表示上,跟id同樣,能夠表示任何對象類型字體

instancetype只能用在返回值類型上,不能像id同樣用在參數類型上ui

instancetype比id多一個好處:編譯器會檢測instancetype的真實類型編碼


xib的文件使用atom

//Xib文件能夠用來描述某一塊局部的UI界面對象

//Xib文件的加載
//方法1
NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@」CZAppView" owner:nil options:nil];
//                 這個方法會建立xib中的全部對象,而且將對象按順序放到objs數組中
//                 (若是xib如右圖所示,那麼objs數組中依次會有3個對象:1個UIView、1個UIButton、1個UISwitch)
                 
//                 方法2
                 bundle參數能夠爲nil,默認就是main bundle
                 UINib *nib = [UINib nibWithNibName:@」CZAppView" bundle:[NSBundle mainBundle]];
                               NSArray *objs = [nib instantiateWithOwner:nil options:nil];
                               
                              // 在開發階段,面向開發者的是xib文件; 當把應用裝到手機上時,xib文件就會轉爲nib文件
                              
xib和storyBoard對比                          
共同點:
都用來描述軟件界面
都用Interface Builder工具來編輯圖片

不一樣點
Xib是輕量級的,用來描述局部的UI界面
Storyboard是重量級的,用來描述整個軟件的多個界面,而且能展現多個界面之間的跳轉關係開發


view的封裝

若是一個view內部的子控件比較多,通常會考慮自定義一個view,把它內部子控件的建立屏蔽起來,不讓外界關心

外界能夠傳入對應的模型數據給view,view拿到模型數據後給內部的子控件設置對應的數據


UIlabel的常見設置

@property(nonatomic,copy)   NSString           *text; 
顯示的文字

@property(nonatomic,retain) UIFont             *font; 
字體

@property(nonatomic,retain) UIColor            *textColor; 
文字顏色

@property(nonatomic)        NSTextAlignment    textAlignment; 
對齊模式(好比左對齊、居中對齊、右對齊)  


UIfont

UIFont表明字體,常見建立方法有如下幾個:
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize;   系統默認字體
+ (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize;  粗體
+ (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize;  斜體


UIbutton的常見設置

- (void)setTitle:(NSString *)title forState:(UIControlState)state;
設置按鈕的文字

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
設置按鈕的文字顏色

- (void)setImage:(UIImage *)image forState:(UIControlState)state; 
設置按鈕內部的小圖片

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
設置按鈕的背景圖片

設置按鈕的文字字體(須要拿到按鈕內部的label來設置)
btn.titleLabel.font = [UIFont systemFontOfSize:13];

- (NSString *)titleForState:(UIControlState)state; 
得到按鈕的文字

- (UIColor *)titleColorForState:(UIControlState)state;
得到按鈕的文字顏色

- (UIImage *)imageForState:(UIControlState)state;
得到按鈕內部的小圖片

- (UIImage *)backgroundImageForState:(UIControlState)state; 得到按鈕的背景圖片

相關文章
相關標籤/搜索