內(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];
**使用添加的延展方法來添加一個(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];
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è)類來顯示的竹挡。
//每次使用都需要加載,不過使用完可以進(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];