日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

UI复习

發布時間:2025/3/20 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UI复习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UIButton的狀態

? normal(普通狀態)

? 默認情況

? 對應的枚舉常量:UIControlStateNormal

? highlighted(高亮狀態)

? 按鈕被按下去的時候(手指還未松開)

? 對應的枚舉常量:UIControlStateHighlighted

? disabled(失效狀態,不可用狀態)

? 如果enabled屬性為NO,就是處于disable狀態,代表按鈕不可以被點擊

?? 對應的枚舉常量:UIControlStateDisabled

?

UIButton和UIImageView

? 相同點:都能顯示圖片

? 不同點

? UIButton默認情況就能監聽點擊事件,而UIImageView默認情況下不能

?? UIButton可以在不同狀態下顯示不同的圖片

? UIButton既能顯示文字,又能顯示圖片

? 如何選擇

? UIButton:需要顯示圖片,點擊圖片后需要做一些特定的操作

? UIImageView:僅僅需要顯示圖片,點擊圖片后不需要做任何事情

?

NSArray和NSDictionary的使用

? 當圖片內容非常多時,“根據index來設置內容”的代碼就不具備擴展性,要經常改動

? 為了改變現狀,可以考慮講圖片數據線保存到一個數組中,數組中有序地放著很多字典,

? 一個字典代表一張圖片數據,包含了圖片名、圖片描述

@property (strong, nonatomic) NSArray *images;

? 由于只需要初始化一次圖片數據,因此放在get方法中初始化

? 將屬性放在get方法中初始化的方式,稱為“懶加載”\”延遲加載”

?

什么是Plist文件

? 直接將數據直接寫在代碼里面,不是一種合理的做法。如果數據經常改,就 要經常翻開對應的代碼進行修改,造成代碼擴展性低

? 因此,可以考慮將經常變的數據放在文件中進行存儲,程序啟動后從文件中 讀取最新的數據。如果要變動數據,直接修改數據文件即可,不用修改代碼

? 一般可以使用屬性列表文件存儲NSArray或者NSDictionary之類的數據,這種 屬性列表文件的擴展名是plist,因此也成為“Plist文件”

?

搭建九宮格的步驟

? 明確每一塊用的是什么view

? 明確每個view之間的父子關系

? 先嘗試逐個逐個添加格子,最后考慮使用for循環 ? 加載app數據,根據數據長度創建對應個數的格子 ? 添加格子內部的子控件

? 給格子內部的子控件裝配數據

?

用模型取代字典的好處

? 使用字典的壞處

? 一般情況下,設置數據和取出數據都使用“字符串類型的key”,編寫這些key時,編譯器不會有任何

友善提示,需要手敲

dict[@"name"] = @"Jack";

NSString *name = dict[@"name"];

手敲字符串key,key容易寫錯 Key如果寫錯了,編譯器不會有任何警告和報錯,造成設錯數據或者取錯數據

使用模型的好處

?所謂模型,其實就是數據模型,專門用來存放數據的對象,用它來表示數據會更加專業

?模型設置數據和取出數據都是通過它的屬性,屬性名如果寫錯了,編譯器會馬上報錯,因此,保

證了數據的正確性

?使用模型訪問屬性時,編譯器會提供一系列的提示,提高編碼效率

app.name = @"Jack”;

NSString *name = app.name;

?

字典轉模型

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

? 模型應該提供一個可以傳入字典參數的構造方法

-(instancetype)initWithDict:(NSDictionary*)dict; ? +(instancetype)xxxWithDict:(NSDictionary*)dict;

instancetype

? instancetype在類型表示上,跟id一樣,可以表示任何對象類型

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

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

?

Xib文件的使用

? Xib文件可以用來描述某一塊局部的UI界面

? Xib文件的加載

?? 方法1

NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"MJAppView" owner:nil

options:nil];

這個方法會創建xib中的所有對象,并且將對象按順序放到objs數組中 (如果xib如右圖所?示,那么objs數組中依次會有3個對象:1個UIView、1個UIButton、1個UISwitch)

? 方法2 bundle參數可以為nil,默認就是main bundle

UINib *nib = [UINib nibWithNibName:@"MJAppView" bundle:[NSBundle mainBundle]];

NSArray *objs = [nib instantiateWithOwner:nil options:nil];

? 在開發階段,面向開發者的是xib文件; 當把應用裝到手機上時,xib文件就會轉為nib文件

隨意調整view的尺寸

? 要想隨意調整xib中view的尺寸,首先要設置size為Freeform

?

Xib和storyboard對比

? 共同點:

? 都用來描述軟件界面

? 都用Interface Builder工具來編輯

? 不同點

? Xib是輕量級的,用來描述局部的UI界面

? Storyboard是重量級的,用來描述整個軟件的多個界面,并且能展示多個界面之間的跳 轉關系

?

view的封裝

? 如果一個view內部的子控件比較多,一般會考慮自定義一個view,把它內部 子控件的創建屏蔽起來,不讓外界關心

? 外界可以傳入對應的模型數據給view,view拿到模型數據后給內部的子控件設置對應的數據

?

UILabel的常見設置

? @property(nonatomic,copy) NSString

? 顯示的文字

? @property(nonatomic,retain)UIFont

? 字體

? @property(nonatomic,retain) UIColor

? 文字顏色

*text;

*font;

*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*)imageforState:(UIControlState)state;

? 設置按鈕內部的小圖片

? - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;

? 設置按鈕的背景圖片

? 設置按鈕的文字字體(需要拿到按鈕內部的label來設置)

? btn.titleLabel.font=[UIFontsystemFontOfSize:13];

?

UIButton的常見設置

? -(NSString*)titleForState:(UIControlState)state;

? 獲得按鈕的文字

? - (UIColor *)titleColorForState:(UIControlState)state;

? 獲得按鈕的文字顏色

? - (UIImage *)imageForState:(UIControlState)state;

?? 獲得按鈕內部的小圖片

? - (UIImage *)backgroundImageForState:(UIControlState)state;

? 獲得按鈕的背景圖片

?

轉載于:https://www.cnblogs.com/ljcgood66/p/4988828.html

總結

以上是生活随笔為你收集整理的UI复习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。