日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UI复习

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

UIButton的狀態(tài)

? normal(普通狀態(tài))

? 默認(rèn)情況

? 對應(yīng)的枚舉常量:UIControlStateNormal

? highlighted(高亮狀態(tài))

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

? 對應(yīng)的枚舉常量:UIControlStateHighlighted

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

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

?? 對應(yīng)的枚舉常量:UIControlStateDisabled

?

UIButton和UIImageView

? 相同點:都能顯示圖片

? 不同點

? UIButton默認(rèn)情況就能監(jiān)聽點擊事件,而UIImageView默認(rèn)情況下不能

?? UIButton可以在不同狀態(tài)下顯示不同的圖片

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

? 如何選擇

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

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

?

NSArray和NSDictionary的使用

? 當(dāng)圖片內(nèi)容非常多時,“根據(jù)index來設(shè)置內(nèi)容”的代碼就不具備擴展性,要經(jīng)常改動

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

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

@property (strong, nonatomic) NSArray *images;

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

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

?

什么是Plist文件

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

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

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

?

搭建九宮格的步驟

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

? 明確每個view之間的父子關(guān)系

? 先嘗試逐個逐個添加格子,最后考慮使用for循環(huán) ? 加載app數(shù)據(jù),根據(jù)數(shù)據(jù)長度創(chuàng)建對應(yīng)個數(shù)的格子 ? 添加格子內(nèi)部的子控件

? 給格子內(nèi)部的子控件裝配數(shù)據(jù)

?

用模型取代字典的好處

? 使用字典的壞處

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

友善提示,需要手敲

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

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

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

使用模型的好處

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

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

證了數(shù)據(jù)的正確性

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

app.name = @"Jack”;

NSString *name = app.name;

?

字典轉(zhuǎn)模型

? 字典轉(zhuǎn)模型的過程最好封裝在模型內(nèi)部

? 模型應(yīng)該提供一個可以傳入字典參數(shù)的構(gòu)造方法

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

instancetype

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

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

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

?

Xib文件的使用

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

? Xib文件的加載

?? 方法1

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

options:nil];

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

? 方法2 bundle參數(shù)可以為nil,默認(rèn)就是main bundle

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

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

? 在開發(fā)階段,面向開發(fā)者的是xib文件; 當(dāng)把應(yīng)用裝到手機上時,xib文件就會轉(zhuǎn)為nib文件

隨意調(diào)整view的尺寸

? 要想隨意調(diào)整xib中view的尺寸,首先要設(shè)置size為Freeform

?

Xib和storyboard對比

? 共同點:

? 都用來描述軟件界面

? 都用Interface Builder工具來編輯

? 不同點

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

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

?

view的封裝

? 如果一個view內(nèi)部的子控件比較多,一般會考慮自定義一個view,把它內(nèi)部 子控件的創(chuàng)建屏蔽起來,不讓外界關(guān)心

? 外界可以傳入對應(yīng)的模型數(shù)據(jù)給view,view拿到模型數(shù)據(jù)后給內(nèi)部的子控件設(shè)置對應(yīng)的數(shù)據(jù)

?

UILabel的常見設(shè)置

? @property(nonatomic,copy) NSString

? 顯示的文字

? @property(nonatomic,retain)UIFont

? 字體

? @property(nonatomic,retain) UIColor

? 文字顏色

*text;

*font;

*textColor;

? @property(nonatomic) NSTextAlignment textAlignment;

? 對齊模式(比如左對齊、居中對齊、右對齊)

UIFont

? UIFont代表字體,常見創(chuàng)建方法有以下幾個:

? + (UIFont *)systemFontOfSize:(CGFloat)fontSize; 系統(tǒng)默認(rèn)字體

? + (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize; 粗體

? + (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize; 斜體

UIButton的常見設(shè)置

? - (void)setTitle:(NSString *)title forState:(UIControlState)state;

? 設(shè)置按鈕的文字

? - (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;

?? 設(shè)置按鈕的文字顏色

? -(void)setImage:(UIImage*)imageforState:(UIControlState)state;

? 設(shè)置按鈕內(nèi)部的小圖片

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

? 設(shè)置按鈕的背景圖片

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

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

?

UIButton的常見設(shè)置

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

? 獲得按鈕的文字

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

? 獲得按鈕的文字顏色

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

?? 獲得按鈕內(nèi)部的小圖片

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

? 獲得按鈕的背景圖片

?

轉(zhuǎn)載于:https://www.cnblogs.com/ljcgood66/p/4988828.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。