iOS中各種UI控件屬性設(shè)置示例代碼
//視圖已經(jīng)加載完了,可以進(jìn)行ui的添加了 - (void)viewDidLoad { [superviewDidLoad]; // Do any additional setup after loading the view. //初始化UILabel注意指定該對象的位置及大小 UILabel *lb = [[UILabelalloc]initWithFrame:CGRectMake(0,20,300,200)]; //設(shè)置文字 lb.text =@"label測試我在學(xué)習(xí)中學(xué)些ui story水電費(fèi)水電費(fèi)未入圍 i肉煨入味哦水電費(fèi)水電費(fèi)水電費(fèi)"; //設(shè)置背景色 lb.backgroundColor = [UIColorcolorWithRed:0green:191.0/255.0blue:243.0/255.0alpha:1.0]; //設(shè)置文字顏色 lb.textColor = [UIColorwhiteColor]; //文字大小,文字字體 lb.font = [UIFontsystemFontOfSize:25]; NSLog(@"系統(tǒng)字體名字:%@",lb.font.familyName); //打印文字字體列表 NSArray *arrFonts = [UIFontfamilyNames]; NSLog(@"系統(tǒng)字體列表:%@",arrFonts); //文字對齊 lb.textAlignment =NSTextAlignmentJustified; // NSTextAlignmentLeft = 0, //居左對齊,默認(rèn) // NSTextAlignmentCenter = 1, //居中對齊 // NSTextAlignmentRight = 2, //居右對齊 // NSTextAlignmentJustified = 3, // Fully-justified. The last line in a paragraph is natural-aligned. // NSTextAlignmentNatural = 4, // Indicates the default alignment for script //換行模式 lb.lineBreakMode =NSLineBreakByCharWrapping; // NSLineBreakByWordWrapping = 0, //每一行的結(jié)尾以字或者一個完整單詞換行(若不夠一個單詞的位置) // NSLineBreakByCharWrapping,//在每一行的結(jié)尾以字母進(jìn)行換行 // NSLineBreakByClipping,// Simply clip // NSLineBreakByTruncatingHead,// Truncate at head of line: "...wxyz" // NSLineBreakByTruncatingTail,// Truncate at tail of line: "abcd..." // NSLineBreakByTruncatingMiddle// Truncate middle of line: "ab...yz" //指定行數(shù),0為不限制行樹,可以指定具體的數(shù)字 lb.numberOfLines =0; //加圓角 lb.layer.cornerRadius =30; //此行必須加,將原來的矩形角剪掉 lb.clipsToBounds =YES; //加邊框顏色,寬度,注意給layer加的顏色是CGColor類型 lb.layer.borderColor = [[UIColorredColor]CGColor]; lb.layer.borderWidth =1.0; //把label添加到視圖上,并且會顯示 [self.viewaddSubview:lb]; }
Label的首行縮進(jìn)一直是個很頭疼的問題,現(xiàn)在IOS6只有有一個 attributedText的屬性值得我們深究,可以達(dá)到我們自定義的行高,還有首行縮進(jìn),各種行距和間隔問題。下面這個是兩個Label, 一個是UserName,另一個是Content文本多行信息
創(chuàng)建標(biāo)簽
@interface ViewController : UIViewController @property ( weak , nonatomic ) IBOutlet UILabel *usernameLabel @property ( weak , nonatomic ) IBOutlet UILabel *contentLabel; @end
視圖展示層
- ( void )viewDidLoad { self . usernameLabel . text = @"用戶名Jordan CZ: " ; self . usernameLabel . adjustsFontSizeToFitWidth = YES ; [ self . usernameLabel sizeToFit ]; self . contentLabel . text = @"首行縮進(jìn)根據(jù)用戶昵稱自動調(diào)整 間隔可自定根據(jù)需求隨意改變。。。。。。。" ; self . contentLabel . adjustsFontSizeToFitWidth = YES ; self . contentLabel . adjustsLetterSpacingToFitWidth = YES ; [ self resetContent ]; }
自適應(yīng)計算間距
- ( void )resetContent{ NSMutableAttributedString *attributedString = [[ NSMutableAttributedString alloc ]initWithString : self . contentLabel . text ]; NSMutableParagraphStyle *paragraphStyle = [[ NSMutableParagraphStyle alloc ]init ]; paragraphStyle. alignment = NSTextAlignmentLeft ; paragraphStyle. maximumLineHeight = 60 ; //最大的行高 paragraphStyle. lineSpacing = 5 ; //行自定義行高度 [paragraphStyle setFirstLineHeadIndent : self . usernameLabel . frame . size .width + 5 ]; //首行縮進(jìn) 根據(jù)用戶昵稱寬度在加5個像素 [attributedString addAttribute : NSParagraphStyleAttributeName value:paragraphStyle range : NSMakeRange ( 0 , [ self . contentLabel . text length ])]; self . contentLabel . attributedText = attributedString; [ self . contentLabel sizeToFit ]; }
UITextView的使用詳解
//初始化并定義大小 UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(20, 10, 280, 30)]; textview.backgroundColor=[UIColor whiteColor]; //背景色 textview.scrollEnabled = NO; //當(dāng)文字超過視圖的邊框時是否允許滑動,默認(rèn)為“YES” textview.editable = YES; //是否允許編輯內(nèi)容,默認(rèn)為“YES” textview.delegate = self; //設(shè)置代理方法的實(shí)現(xiàn)類 textview.font=[UIFont fontWithName:@"Arial" size:18.0]; //設(shè)置字體名字和字體大小; textview.returnKeyType = UIReturnKeyDefault;//return鍵的類型 textview.keyboardType = UIKeyboardTypeDefault;//鍵盤類型 textview.textAlignment = NSTextAlignmentLeft; //文本顯示的位置默認(rèn)為居左 textview.dataDetectorTypes = UIDataDetectorTypeAll; //顯示數(shù)據(jù)類型的連接模式(如電話號碼、網(wǎng)址、地址等) textview.textColor = [UIColor blackColor]; textview.text = @"UITextView詳解";//設(shè)置顯示的文本內(nèi)容 [self.view addSubview:textview];
UITextView的代理方法如下:
//將要開始編輯 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView; //將要結(jié)束編輯 - (BOOL)textViewShouldEndEditing:(UITextView *)textView; //開始編輯 - (void)textViewDidBeginEditing:(UITextView *)textView; //結(jié)束編輯 - (void)textViewDidEndEditing:(UITextView *)textView; //內(nèi)容將要發(fā)生改變編輯 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text; //內(nèi)容發(fā)生改變編輯 - (void)textViewDidChange:(UITextView *)textView; //焦點(diǎn)發(fā)生改變 - (void)textViewDidChangeSelection:(UITextView *)textView;
有時候我們要控件自適應(yīng)輸入的文本的內(nèi)容的高度,只要在textViewDidChange的代理方法中加入調(diào)整控件大小的代理即可
- (void)textViewDidChange:(UITextView *)textView{ //計算文本的高度 CGSize constraintSize; constraintSize.width = textView.frame.size.width-16; constraintSize.height = MAXFLOAT; CGSize sizeFrame =[textView.text sizeWithFont:textView.font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; //重新調(diào)整textView的高度 textView.frame =CGRectMake(textView.frame.origin.x,textView.frame.origin.y,textView.frame.size.width,sizeFrame.height+5); }
控制輸入文字的長度和內(nèi)容,可通調(diào)用以下代理方法實(shí)現(xiàn)
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text { if (range.location>=100) { //控制輸入文本的長度 return NO; } if ([text isEqualToString:@"\n"]) { //禁止輸入換行 return NO; } else { return YES; } }
UITextView退出鍵盤的幾種方式
因?yàn)閕phone的軟鍵盤沒有自帶的退鍵盤鍵,所以要實(shí)現(xiàn)退出鍵盤需要自己實(shí)現(xiàn),有如下幾種方式:
1)如果你程序是有導(dǎo)航條的,可以在導(dǎo)航條上面加多一個Done的按鈕,用來退出鍵盤,當(dāng)然要先實(shí)UITextViewDelegate。
- (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissKeyBoard)]; self.navigationItem.rightBarButtonItem = done; [done release]; done = nil; } - (void)textViewDidEndEditing:(UITextView *)textView { self.navigationItem.rightBarButtonItem = nil; } - (void)dismissKeyBoard { [self.textView resignFirstResponder]; }
2)如果你的textview里不用回車鍵,可以把回車鍵當(dāng)做退出鍵盤的響應(yīng)鍵。
代碼如下:
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text { if ([text isEqualToString:@"\n"]) { [textView resignFirstResponder]; return NO; } return YES; }
3)還有你也可以自定義其他加載鍵盤上面用來退出,比如在彈出的鍵盤上面加一個view來放置退出鍵盤的Done按鈕。
代碼如下:
UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320,30)]; [topView setBarStyle:UIBarStyleBlack]; UIBarButtonItem *btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)]; NSArray * buttonsArray = @[btnSpace, doneButton];; [doneButton release]; [btnSpace release]; [topView setItems:buttonsArray]; [textView setInputAccessoryView:topView];//當(dāng)文本輸入框加上topView [topView release]; topView = nil; -(IBAction)dismissKeyBoard { [tvTextView resignFirstResponder]; }
總結(jié)
到此這篇關(guān)于iOS中各種UI控件屬性設(shè)置的文章就介紹到這了,更多相關(guān)iOS各種UI控件屬性設(shè)置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
iOS UIWebView 通過 cookie 完成自動登錄實(shí)例
本篇文章主要介紹了iOS UIWebView 通過 cookie 完成自動登錄實(shí)例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04Objective C從遠(yuǎn)程url下載圖片方法匯總
本文給大家分享了2則使用Objective C從遠(yuǎn)程url下載圖片的方法,都是個人項(xiàng)目中使用的,匯總下推薦給大家,有需要的小伙伴可以參考下。2015-05-05iOS開發(fā)中#import、#include和@class的區(qū)別解析
這篇文章主要介紹了iOS開發(fā)中#import、#include和@class的區(qū)別解析,非常不錯,具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧2016-08-08設(shè)計模式中的迭代器模式在Cocoa Touch框架中的使用
這篇文章主要介紹了設(shè)計模式中的迭代器模式在Cocoa Touch框架中的使用,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-03-03iOS如何用100行代碼實(shí)現(xiàn)簡單的抽屜效果
最近在網(wǎng)上看到一些抽屜效果,看起來很酷!很眩!但是,下不下來看代碼, 所以決定還是自己寫吧!!這篇文章通過近100行的代碼就實(shí)現(xiàn)了簡單的抽屜效果,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-10-10