ios筆記(二)控件屬性
阿新 • • 發佈:2017-05-09
let less sin alpha rec 再次 fontsize adjust 旋轉
1.設置UIButton的按鈕內容
//設置自定義的按鈕 //UIButton *button1=[UIButton buttonWithType:UIButtonTypeCustom]; //設置一個圓角的按鈕 UIButton *button1=[UIButton buttonWithType:UIButtonTypeRoundedRect]; button1.frame=CGRectMake(80,250,250, 30);//按鈕的位置坐標 [button1 setTitle:@"Button1" forState:UIControlStateNormal];//普通狀態按鈕標題 [button1 setTitle:@"高亮狀態" forState:UIControlStateHighlighted];//高亮狀態的按鈕標題 //高亮狀態光暈效果 [button1 setShowsTouchWhenHighlighted:YES]; //設置標題的顏色 [button1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; //設置標題的字體大小 [button1.titleLabel setFont:[UIFont boldSystemFontOfSize:20]]; //設置背景顏色 [button1 setBackgroundColor:[UIColor blueColor]];//圖片被拉伸式地設置背景圖片 [button1 setBackgroundImage:[UIImage imageNamed:@"1.jpg"] forState:UIControlStateNormal]; //圖片保持原來大小地設置背景圖片 //[button1 setImage:[UIImage imageNamed:@"1.jpg"] forState:UIControlStateNormal]; [[button1 titleLabel]setShadowColor:[UIColor blackColor]]; [[button1 titleLabel]setShadowOffset:CGSizeMake(-0.5, -0.5)]; button1.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft; [self.view addSubview:button1]; //監聽事件 [button1 addTarget:self action:@selector(Click_Button) forControlEvents:UIControlEventTouchUpInside]; } -(void)Click_Button { NSLog(@"已點擊..."); }
2.設置UIImageView的圖片內容
1.實例化控件 UIImageView *img = [[UIImageView alloc] init]; //簡寫UIImageView *img = [UIImageView new]; 2.設置控件內容,後面的background是圖片名稱,只需拖進項目的Assets文件即可 img.image = [UIImage imageNamed:@"background"]; 3.設置控件的frame(坐標) img.frame = CGRectMake(0, 0, 100, 100); 4.添加在父控件 [self.view addSubView:img];
2.3 使用transform屬性 imageView.transform = CGAffineTransformMakeTranslation(CGFloat dx, CGFloat dy); 其中dx與dy表示想要往x或者y方向移動多少,而不是移動到多少。 3、旋轉圖像 imageView.transform = CGAffineTransformMakeRotation(CGFloat angle); 要註意它是按照順時針方向旋轉的,而且旋轉中心是原始ImageView的中心,也就是center屬性表示的位置。 這個方法的參數angle的單位是弧度,而不是我們最常用的度數,所以可以寫一個宏定義: #define degreesToRadians(x) (M_PI*(x)/180.0) 4、縮放圖像 還是使用transform屬性: imageView.transform = CGAffineTransformMakeScale(CGFloat scale_w, CGFloat scale_h);
5、為圖片添加單擊事件: imageView.userInteractionEnabled = YES;//使控件實現交互 UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImageView:)]; [imageView addGestureRecognizer:singleTap]; 一定要先將userInteractionEnabled置為YES,這樣才能響應單擊事件 6.其他設置 imageView.hidden = YES或者NO; // 隱藏或者顯示圖片 imageView.alpha = (CGFloat) al; // 設置透明度 imageView.highlightedImage = (UIImage *)hightlightedImage; // 設置高亮時顯示的圖片 imageView.image = (UIImage *)image; // 設置正常顯示的圖片 [imageView sizeToFit]; // 將圖片尺寸調整為與內容圖片相同
3.設置UILabel的屬性內容
設置label的標記(tag) label.tag =101; 設置label的文本內容 label.text =@"abcd" 設置label的文字類型與大小 label.font = [UIFont systemFontOfSize:12];//采用系統默認文字設置大小 label.font = [UIFont fontWithName:@"Arial" size:30];//設置文字類型與大小 設置label的文字顏色 label.textColor = [UIColor lightGrayColor];//其中textColor要用UIColor類型 設置文本的對齊方式 label.textAlignment = NSTextAlignmentLeft; 其中textAlignment有三種設置方式:NSTextAlignmentLeft為向左對齊,NSTextAlignmentCenter為居中對齊,NSTextAlignmentRight為向右對齊 如果有一些文章介紹時用的是UITextAlignmentCenter/UITextAlignmentLeft/UITextAlignmentRight,那是iOS6以前的用法,iOS6的最新用法已改 當文本內容很多,label無法全部顯示時label會將文本內容以省略號的方式代替,下面說一下label文本省略方式的設置 label.lineBreakMode =NSLineBreakByCharWrapping;//其中lineBreakMode可選值為 linBreakMode enum{ NSLineBreakByWordWrapping = 0,//保留整個單詞,以空格為邊界 NSLineBreakByCharWrapping,//保留整個字符 NSLineBreakByClipping,//以邊界為止 NSLineBreakByTruncatingHead,//省略開頭,以省略號代替 NSLineBreakByTruncatingTail,//省略結尾,以省略號代替 NSLineBreakByTruncatingMiddle//省略中間,以省略號代替 } 設置文本的行數 label.numberOfLines = 0;//行數設置為1,不設置時系統會默認行數為1,設置為0時,表示自動換行,但需要給定控件寬度 設置控件自適應內容的大小 [label sizeToFit]; 設置label的邊框粗細與顏色,設置前要在相應文件中加入#import<QuartzCore/QuartzCore.h> label.layer.borderColor = [UIColor lightGrayColor].CGColor;//邊框顏色,要為CGColor label.layer.borderWidth = 1;//邊框寬度 設置label的背景顏色 label.backgroundColor =[UIColor yellowColor]; 設置背景圖可以把一張大小與label一樣的圖放在label的後面一層,然後把label的背景設置為透明,這樣實現label有背景 UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 200, 400)]; UIImageView *imageView =[[UIImageView alloc]init]; imageView.frame =CGRectMake(50, 50, 200, 400); UIImage *image=[UIImage imageNamed:@"1.jpg"]; imageView.image =image;//imageView會根據自身大小改變添加的圖片的大小所以不需要額外設置image label.backgroundColor = [UIColor clearColor]; label.text =@"hello world"; label.font = [UIFont systemFontOfSize:30]; label.textColor = [UIColor yellowColor]; [self.view addSubview:imageView];//添加的順序不能錯,否則圖片會覆蓋label [self.view addSubview:label]; 設置文本陰影 label.shadowColor =[UIColor grayColor]; 設置陰影大小 label.shadowOffset = CGSizeMake(2.0, 2.0); 設置label圓角 label.layer.cornerRadius = 10; 要是用這樣的設置要先在頭文件中加上#import<QuartzCore/QuartzCore.h>
4.設置TextField的屬性內容
定義一個TextField userNameField = [[UITextField alloc] initWithFrame:CGRectMake(userNameImg.frame.origin.x+30,userNameImg.frame.origin.y, 165, 40)]; userNameField.placeholder = @"User Name"; userNameField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"手機號碼" attributes:@{ NSForegroundColorAttributeName:placeHolderColor}]; 上面這句是設置placeHolder的顏色,placeHolderColor是自己需要的顏色 userNameField.backgroundColor = [UIColor clearColor]; userNameField.delegate = self; userNameField.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; userNameField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; userNameField.borderStyle = UITextBorderStyleNone; userNameField.font = [UIFont systemFontOfSize:14.0]; [self.view addSubview:userNameField]; //設置邊框樣式,只有設置了才會顯示邊框樣式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBorderStyleBezel, UITextBorderStyleRoundedRect } UITextBorderStyle; //設置輸入框的背景顏色,此時設置為白色如果使用了自定義的背景圖片邊框會被忽略掉 text.backgroundColor = [UIColor whiteColor]; //設置背景 text.background = [UIImage imageNamed:@"dd.png"]; //設置背景 text.disabledBackground = [UIImage imageNamed:@"cc.png"]; //當輸入框沒有內容時,水印提示提示內容為password text.placeholder = @"password"; //設置輸入框內容的字體樣式和大小 text.font = [UIFont fontWithName:@"Arial" size:20.0f]; //設置字體顏色 text.textColor = [UIColor redColor]; //輸入框中是否有個叉號,在什麽時候顯示,用於一次性刪除輸入框中的內容 text.clearButtonMode = UITextFieldViewModeAlways; typedef enum { UITextFieldViewModeNever, 重不出現 UITextFieldViewModeWhileEditing, 編輯時出現 UITextFieldViewModeUnlessEditing, 除了編輯外都出現 UITextFieldViewModeAlways 一直出現 } UITextFieldViewMode; //輸入框中一開始就有的文字 text.text = @"一開始就在輸入框的文字"; //每輸入一個字符就變成點用語密碼輸入 text.secureTextEntry = YES; //是否糾錯 text.autocorrectionType = UITextAutocorrectionTypeNo; typedef enum { UITextAutocorrectionTypeDefault, 默認 UITextAutocorrectionTypeNo, 不自動糾錯 UITextAutocorrectionTypeYes, 自動糾錯 } UITextAutocorrectionType; //再次編輯就清空 text.clearsOnBeginEditing = YES; //內容對齊方式 text.textAlignment = UITextAlignmentLeft; //內容的垂直對齊方式 UITextField繼承自UIControl,此類中有一個屬性contentVerticalAlignment text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; //設置為YES時文本會自動縮小以適應文本窗口大小.默認是保持原來大小,而讓長文本滾動 textFied.adjustsFontSizeToFitWidth = YES; //設置自動縮小顯示的最小字體大小 text.minimumFontSize = 20; //設置鍵盤的樣式 text.keyboardType = UIKeyboardTypeNumberPad; typedef enum { UIKeyboardTypeDefault, 默認鍵盤,支持所有字符 UIKeyboardTypeASCIICapable, 支持ASCII的默認鍵盤 UIKeyboardTypeNumbersAndPunctuation, 標準電話鍵盤,支持+*#字符 UIKeyboardTypeURL, URL鍵盤,支持.com按鈕 只支持URL字符 UIKeyboardTypeNumberPad, 數字鍵盤 UIKeyboardTypePhonePad, 電話鍵盤 UIKeyboardTypeNamePhonePad, 電話鍵盤,也支持輸入人名 UIKeyboardTypeEmailAddress, 用於輸入電子 郵件地址的鍵盤 UIKeyboardTypeDecimalPad, 數字鍵盤 有數字和小數點 UIKeyboardTypeTwitter, 優化的鍵盤,[email protected]#字符 UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, } UIKeyboardType; //首字母是否大寫 text.autocapitalizationType = UITextAutocapitalizationTypeNone; typedef enum { UITextAutocapitalizationTypeNone, 不自動大寫 UITextAutocapitalizationTypeWords, 單詞首字母大寫 UITextAutocapitalizationTypeSentences, 句子的首字母大寫 UITextAutocapitalizationTypeAllCharacters, 所有字母都大寫 } UITextAutocapitalizationType;
ios筆記(二)控件屬性