UI梳理一——基礎(chǔ)知識(shí)之UI基礎(chǔ)控件

內(nèi)容:
一、UILabel
二、UITextField
三汇陆、UIButton
四、UIImageView

UILabel :

*先創(chuàng)建一個(gè)view畫紙containerView
    //創(chuàng)建一個(gè)UILabel带饱、標(biāo)簽視圖
    UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(50, 100, 250, 100)]autorelease];

    //設(shè)置label的背景顏色
    label.backgroundColor = [UIColor redColor];

    //設(shè)置label的文本
    label.text = @"zhonger is a beautiful girl,she loves jinkangda";

    //設(shè)置label的文本顏色
    label.textColor = [UIColor whiteColor];

    //設(shè)置label的文本對(duì)齊方式毡代,默認(rèn)左對(duì)齊
    label.textAlignment = NSTextAlignmentCenter;

    //設(shè)置label的字體,默認(rèn)17
//    label.font = [UIFont systemFontOfSize:20];
    //加粗
    label.font = [UIFont boldSystemFontOfSize:20];

    //設(shè)置label多行顯示勺疼,默認(rèn)是1教寂,單行顯示
    label.numberOfLines = 0;

    //設(shè)置label的文本陰影的顏色和偏移量
    label.shadowColor = [UIColor darkGrayColor];
    //陰影向x正?向偏移2,向y正?向偏移1执庐。
    label.shadowOffset = CGSizeMake(2, 1);

    //設(shè)置折行模式
    label.lineBreakMode = NSLineBreakByWordWrapping;
    
    [containerView addSubview:label];
運(yùn)行結(jié)果.png
**使用添加的延展方法來添加一個(gè)標(biāo)簽視圖:**
**AppDelegate.m中****:**
**1酪耕、聲明**
@interface AppDelegate ()
//創(chuàng)建UILabel
- (UILabel *)createLabelWithText:(NSString *)text frame:(CGRect)frame textColor:(UIColor*)textColor textAlignment:(NSTextAlignment)textAlignment numberOfLines:(NSInteger)numberOfLines font:(UIFont *)font;
@end

**2、實(shí)現(xiàn)**
@implementation AppDelegate
//實(shí)現(xiàn)UILabel
- (UILabel *)createLabelWithText:(NSString *)text frame:(CGRect)frame textColor:(UIColor*)textColor textAlignment:(NSTextAlignment)textAlignment numberOfLines:(NSInteger)numberOfLines font:(UIFont *)font {
    UILabel *label = [[UILabel alloc] initWithFrame:frame];
    label.text = text;
    label.textColor = textColor;
    label.textAlignment = textAlignment;
    label.numberOfLines = numberOfLines;
    label.font = font;
    return [label autorelease];
}

**3轨淌、使用**
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
    ... ...

    UILabel *label1 = [self createLabelWithText:@"豬八達(dá)點(diǎn)秋香" frame:CGRectMake(100, 300, 200,40) textColor:[UIColor magentaColor] textAlignment:NSTextAlignmentCenter numberOfLines:0 font:[UIFont boldSystemFontOfSize:21]];
    [containerView addSubview:label1];

    ... ...
}
****
    ... ...
@end

UITextField:

    //創(chuàng)建一個(gè)輸入框,UITextField
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(100, 200, 200,40)];

    //告知用戶這個(gè)輸入框應(yīng)該輸入的信息
    textField.placeholder = @"請(qǐng)輸入一種花的名字:";
    //設(shè)置輸入框的邊框樣式
    textField.borderStyle = UITextBorderStyleRoundedRect;
    //設(shè)置輸入框是否重新輸入的時(shí)候清空內(nèi)容
    textField.clearsOnBeginEditing = YES;
    //設(shè)置密文輸入
    textField.secureTextEntry = YES;

UITextInputTraits:
    //設(shè)置鍵盤樣式
    textField.keyboardType = UIKeyboardTypeNumberPad;
    //設(shè)置鍵盤上的return鍵樣式
    textField.returnKeyType = UIReturnKeyDone;
    //設(shè)置鍵盤上的清除樣式模式
    textField.clearButtonMode = UITextFieldViewModeAlways;
 
    [containerView addSubview:textField];
    [textField release];
運(yùn)行結(jié)果.png

UITextField常?代理?法:

//當(dāng)textField將要開始編輯的時(shí)候告訴委托?
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;

//當(dāng)textField已經(jīng)編輯的時(shí)候告訴委托?
- (void)textFieldDidBeginEditing:(UITextField *)textField;

//當(dāng)textField將要完成編輯的時(shí)候告訴委托?
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;

//當(dāng)textField已經(jīng)完成編輯的時(shí)候告訴委托?
- (void)textFieldDidEndEditing:(UITextField *)textField;

//將某個(gè)范圍內(nèi)的字符替換為另一段字符
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

//當(dāng)按下鍵盤上的清除鍵時(shí)告訴委托人
- (BOOL)textFieldShouldClear:(UITextField *)textField;

//當(dāng)點(diǎn)擊鍵盤上回車按鍵時(shí)候告訴委托?
- (BOOL)textFieldShouldReturn:(UITextField *)textField;

UIButton:

    //創(chuàng)建一個(gè)UIButton對(duì)象
****
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    //設(shè)置frame
    button.frame = CGRectMake(100, 300, 200, 150);

    //設(shè)置button顯示的文本(標(biāo)題)
    [button setTitle:@"一月" forState:UIControlStateNormal];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
/*這里注意:
    UIButtonTypeCustom 比 UIButtonTypeSystem更靈活
    UIButtonTypeSystem會(huì)設(shè)置一些默認(rèn)樣式迂烁,如看尼,字體顏色為 藍(lán)色
    即 UIButtonTypeSystem 不給定標(biāo)題顏色也可顯示,但是 UIButtonTypeCustom 就不行了
*/

    //設(shè)置了背景圖片為普通狀態(tài)盟步,按鈕未被點(diǎn)擊時(shí)的狀態(tài)
    [button setBackgroundImage:[UIImage imageNamed:@"xigua.png"] forState:UIControlStateNormal];
    //設(shè)置了背景圖片為高亮狀態(tài)藏斩,按鈕被點(diǎn)擊時(shí)的狀態(tài)  
    [button setBackgroundImage:[UIImage imageNamed:@"BtnOff"] forState:UIControlStateHighlighted];
/*
這里注意:
UIControlStateHighlighted 高亮狀態(tài)下,點(diǎn)住不動(dòng)才可顯示圖片
如果兩個(gè)狀態(tài)設(shè)置了不同圖片却盘,點(diǎn)擊出現(xiàn)閃爍圖片改變效果
如果圖片是png格式的狰域,后綴可不寫
*/

    //設(shè)置了背景圖片,是否出現(xiàn)閃爍的效果黄橘,即是否出現(xiàn)點(diǎn)擊是的高亮狀態(tài)兆览,默認(rèn)YES
    button.adjustsImageWhenHighlighted = NO;

    //設(shè)置button的前景圖片
    [button setImage:[UIImage imageNamed:@"xigua.png"] forState:UIControlStateNormal];
/*
這里注意:
設(shè)置button的背景圖片,不論圖片大小塞关,都填充顯示拓颓,顯示的與button等大
設(shè)置button的前景圖片,如果圖片的大小大于設(shè)置的button的frame描孟,那么圖片會(huì)被壓縮到與button等大,如果圖片大小小于button的frame砰左,保持原大小
在UIButtonTypeCustom狀態(tài)下顯示原圖匿醒,在UIButtonTypeSystem狀態(tài)下顯示圖片輪廓
*/

    //關(guān)鍵方法,為button添加一個(gè)事件
    [button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
    [containerView addSubview:button];
/*
這里注意:
MVC缠导,V即view廉羔,C即control
Button是UIView的子類,View不執(zhí)行方法僻造,交給Control去執(zhí)行憋他,解耦合
addTarget:(執(zhí)行對(duì)象) action:(方法) forControlEvents:(點(diǎn)擊方式)
UIControlEventTouchUpInside 點(diǎn)擊方式為:點(diǎn)擊后松手
*/

UIImageView:

UIImageView是iOS中用于顯示圖片的類,iOS中幾乎所有看到的圖片髓削,都是由這個(gè)類來顯示的竹挡。

Paste_Image.png
 //每次使用都需要加載,不過使用完可以進(jìn)行釋放立膛,不會(huì)對(duì)內(nèi)存造成太大的壓力揪罕,大圖片使用,不常用圖片
    NSString *path = [[NSBundle mainBundle] resourcePath];
    NSString *imagePath = [NSString stringWithFormat:@"%@/600.jpeg",path];
    UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];
    
    //不需要每次加載宝泵,但是當(dāng)程序結(jié)束時(shí)才釋放好啰,小圖片使用,常用圖片
    UIImage *image1 = [UIImage imageNamed:@"600.jpeg"];
    
    //圖片不能直接顯示在屏幕上需要載體
    //載體
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image1];
    //圖片顯示在屏幕上的大小是由載體控制的
    imageView.frame = CGRectMake(10, 10, 300, 500);
****
    //內(nèi)容模式
    /*
     默認(rèn)效果:UIViewContentModeScaleToFill - 拉伸充滿整個(gè)載體
     UIViewContentModeScaleAspectFill - 拉伸不改變比例儿奶,充滿最大的一邊
     UIViewContentModeScaleAspectFit - 拉伸不改變比例框往,充滿最小的一邊
     */
    imageView.contentMode = UIViewContentModeScaleAspectFill;
UIImageView的動(dòng)態(tài)圖(實(shí)現(xiàn)動(dòng)畫):
animationImages //設(shè)置一組動(dòng)態(tài)圖片
animationDuration //設(shè)置播放一組動(dòng)態(tài)圖片的時(shí)間
animationRepeatCount //設(shè)置重復(fù)次數(shù)
startAnimating //開始動(dòng)畫
stopAnimating //結(jié)束動(dòng)畫
//做動(dòng)態(tài)圖
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 173, 173)];
    
    //指定展示圖片
//    imageView.image = [UIImage imageNamed:@"dog-26(被拖移).tiff"];
    

    //UIImageView動(dòng)畫 - 播放序列圖
    NSMutableArray *mArr = [NSMutableArray arrayWithCapacity:0];
    for (int i = 1; i < 30; i ++) {
        //獲取圖片名稱
        NSString *picStr = [NSString stringWithFormat:@"dog-%d(被拖移).tiff",i];
        //獲取每一張圖片對(duì)象
        UIImage *image = [UIImage imageNamed:picStr];
        //將圖片添加到數(shù)組
        [mArr addObject:image];
    }
    //設(shè)置動(dòng)畫播放數(shù)組,指定做動(dòng)畫的所有圖片
    imageView.animationImages = mArr;
    //指定動(dòng)畫時(shí)間(秒)
    imageView.animationDuration = 2.0;
    //重復(fù)次數(shù)闯捎,默認(rèn)為0椰弊,一直重復(fù)许溅,,直到使用stopAnimating
    imageView.animationRepeatCount = 0;
    //開啟動(dòng)畫
    [imageView startAnimating];
    
    [containerView addSubview:imageView];
    [imageView release];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末男应,一起剝皮案震驚了整個(gè)濱河市闹司,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沐飘,老刑警劉巖游桩,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異耐朴,居然都是意外死亡借卧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門筛峭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铐刘,“玉大人,你說我怎么就攤上這事影晓×常” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵挂签,是天一觀的道長疤祭。 經(jīng)常有香客問我,道長饵婆,這世上最難降的妖魔是什么勺馆? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮侨核,結(jié)果婚禮上草穆,老公的妹妹穿的比我還像新娘。我一直安慰自己搓译,他們只是感情好悲柱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侥衬,像睡著了一般诗祸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轴总,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天直颅,我揣著相機(jī)與錄音,去河邊找鬼怀樟。 笑死功偿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播械荷,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼共耍,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吨瞎?” 一聲冷哼從身側(cè)響起痹兜,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颤诀,沒想到半個(gè)月后字旭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡崖叫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年遗淳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片心傀。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屈暗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出脂男,到底是詐尸還是另有隱情养叛,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布宰翅,位于F島的核電站一铅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏堕油。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一肮之、第九天 我趴在偏房一處隱蔽的房頂上張望掉缺。 院中可真熱鬧,春花似錦戈擒、人聲如沸眶明。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搜囱。三九已至,卻和暖如春柑土,著一層夾襖步出監(jiān)牢的瞬間蜀肘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工稽屏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扮宠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓狐榔,卻偏偏與公主長得像坛增,于是被迫代替她去往敵國和親获雕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫收捣、插件届案、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,058評(píng)論 4 62
  • 55.9KG咔咔咔~
    茄子就是茄子閱讀 180評(píng)論 0 0
  • 看了一篇文章,就是參考中的那篇罢艾,大致總結(jié)一下用OO的問題楣颠。 繼承的問題 父類太多,需要依賴的類就比較多了昆婿,特別是依...
    虎耳閱讀 325評(píng)論 0 1
  • 最近在追芒果臺(tái)的《偶像來了》球碉,突然間把那么多幾乎從我們視線里消失已久、曾經(jīng)也是紅極一時(shí)的明星們聚集在一起仓蛆,本身就...
    夜涼如水的夜閱讀 5,734評(píng)論 40 143
  • 內(nèi)容頁結(jié)構(gòu): 以這篇文章為例子: http://news.sina.com.cn/c/2017-09-05/doc...
    DYBOY閱讀 1,162評(píng)論 0 1