iOS中各种UI控件属性设置示例代码
//视图已经加载完了,可以进行ui的添加了 -(void)viewDidLoad{ [superviewDidLoad]; //Doanyadditionalsetupafterloadingtheview. //初始化UILabel注意指定该对象的位置及大小 UILabel*lb=[[UILabelalloc]initWithFrame:CGRectMake(0,20,300,200)]; //设置文字 lb.text=@"label测试我在学习中学些uistory水电费水电费未入围i肉煨入味哦水电费水电费水电费"; //设置背景色 lb.backgroundColor=[UIColorcolorWithRed:0green:191.0/255.0blue:243.0/255.0alpha:1.0]; //设置文字颜色 lb.textColor=[UIColorwhiteColor]; //文字大小,文字字体 lb.font=[UIFontsystemFontOfSize:25]; NSLog(@"系统字体名字:%@",lb.font.familyName); //打印文字字体列表 NSArray*arrFonts=[UIFontfamilyNames]; NSLog(@"系统字体列表:%@",arrFonts); //文字对齐 lb.textAlignment=NSTextAlignmentJustified; //NSTextAlignmentLeft=0,//居左对齐,默认 //NSTextAlignmentCenter=1,//居中对齐 //NSTextAlignmentRight=2,//居右对齐 //NSTextAlignmentJustified=3,//Fully-justified.Thelastlineinaparagraphisnatural-aligned. //NSTextAlignmentNatural=4,//Indicatesthedefaultalignmentforscript //换行模式 lb.lineBreakMode=NSLineBreakByCharWrapping; //NSLineBreakByWordWrapping=0,//每一行的结尾以字或者一个完整单词换行(若不够一个单词的位置) //NSLineBreakByCharWrapping,//在每一行的结尾以字母进行换行 //NSLineBreakByClipping,//Simplyclip //NSLineBreakByTruncatingHead,//Truncateatheadofline:"...wxyz" //NSLineBreakByTruncatingTail,//Truncateattailofline:"abcd..." //NSLineBreakByTruncatingMiddle//Truncatemiddleofline:"ab...yz" //指定行数,0为不限制行树,可以指定具体的数字 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的首行缩进一直是个很头疼的问题,现在IOS6只有有一个attributedText的属性值得我们深究,可以达到我们自定义的行高,还有首行缩进,各种行距和间隔问题。下面这个是两个Label,一个是UserName,另一个是Content文本多行信息
创建标签
@interfaceViewController:UIViewController @property(weak,nonatomic)IBOutletUILabel*usernameLabel @property(weak,nonatomic)IBOutletUILabel*contentLabel; @end
视图展示层
-(void)viewDidLoad{ self.usernameLabel.text=@"用户名JordanCZ:"; self.usernameLabel.adjustsFontSizeToFitWidth=YES; [self.usernameLabelsizeToFit]; self.contentLabel.text=@"首行缩进根据用户昵称自动调整间隔可自定根据需求随意改变。。。。。。。"; self.contentLabel.adjustsFontSizeToFitWidth=YES; self.contentLabel.adjustsLetterSpacingToFitWidth=YES; [selfresetContent]; }
自适应计算间距
-(void)resetContent{ NSMutableAttributedString*attributedString=[[NSMutableAttributedStringalloc]initWithString:self.contentLabel.text]; NSMutableParagraphStyle*paragraphStyle=[[NSMutableParagraphStylealloc]init]; paragraphStyle.alignment=NSTextAlignmentLeft; paragraphStyle.maximumLineHeight=60;//最大的行高 paragraphStyle.lineSpacing=5;//行自定义行高度 [paragraphStylesetFirstLineHeadIndent:self.usernameLabel.frame.size.width+5];//首行缩进根据用户昵称宽度在加5个像素 [attributedStringaddAttribute:NSParagraphStyleAttributeNamevalue:paragraphStylerange:NSMakeRange(0,[self.contentLabel.textlength])]; self.contentLabel.attributedText=attributedString; [self.contentLabelsizeToFit]; }
UITextView的使用详解
//初始化并定义大小 UITextView*textview=[[UITextViewalloc]initWithFrame:CGRectMake(20,10,280,30)]; textview.backgroundColor=[UIColorwhiteColor];//背景色 textview.scrollEnabled=NO;//当文字超过视图的边框时是否允许滑动,默认为“YES” textview.editable=YES;//是否允许编辑内容,默认为“YES” textview.delegate=self;//设置代理方法的实现类 textview.font=[UIFontfontWithName:@"Arial"size:18.0];//设置字体名字和字体大小; textview.returnKeyType=UIReturnKeyDefault;//return键的类型 textview.keyboardType=UIKeyboardTypeDefault;//键盘类型 textview.textAlignment=NSTextAlignmentLeft;//文本显示的位置默认为居左 textview.dataDetectorTypes=UIDataDetectorTypeAll;//显示数据类型的连接模式(如电话号码、网址、地址等) textview.textColor=[UIColorblackColor]; textview.text=@"UITextView详解";//设置显示的文本内容 [self.viewaddSubview:textview];
UITextView的代理方法如下:
//将要开始编辑 -(BOOL)textViewShouldBeginEditing:(UITextView*)textView; //将要结束编辑 -(BOOL)textViewShouldEndEditing:(UITextView*)textView; //开始编辑 -(void)textViewDidBeginEditing:(UITextView*)textView; //结束编辑 -(void)textViewDidEndEditing:(UITextView*)textView; //内容将要发生改变编辑 -(BOOL)textView:(UITextView*)textViewshouldChangeTextInRange:(NSRange)rangereplacementText:(NSString*)text; //内容发生改变编辑 -(void)textViewDidChange:(UITextView*)textView; //焦点发生改变 -(void)textViewDidChangeSelection:(UITextView*)textView;
有时候我们要控件自适应输入的文本的内容的高度,只要在textViewDidChange的代理方法中加入调整控件大小的代理即可
-(void)textViewDidChange:(UITextView*)textView{ //计算文本的高度 CGSizeconstraintSize; constraintSize.width=textView.frame.size.width-16; constraintSize.height=MAXFLOAT; CGSizesizeFrame=[textView.textsizeWithFont:textView.font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; //重新调整textView的高度 textView.frame=CGRectMake(textView.frame.origin.x,textView.frame.origin.y,textView.frame.size.width,sizeFrame.height+5); }
控制输入文字的长度和内容,可通调用以下代理方法实现
-(BOOL)textView:(UITextView*)textViewshouldChangeTextInRange:(NSRange)rangereplacementText:(NSString*)text { if(range.location>=100) { //控制输入文本的长度 returnNO; } if([textisEqualToString:@"\n"]){ //禁止输入换行 returnNO; } else { returnYES; } }
UITextView退出键盘的几种方式
因为iphone的软键盘没有自带的退键盘键,所以要实现退出键盘需要自己实现,有如下几种方式:
1)如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate。
-(void)textViewDidBeginEditing:(UITextView*)textView{ UIBarButtonItem*done=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissKeyBoard)]; self.navigationItem.rightBarButtonItem=done; [donerelease]; done=nil; } -(void)textViewDidEndEditing:(UITextView*)textView{ self.navigationItem.rightBarButtonItem=nil; } -(void)dismissKeyBoard{ [self.textViewresignFirstResponder]; }
2)如果你的textview里不用回车键,可以把回车键当做退出键盘的响应键。
代码如下:
-(BOOL)textView:(UITextView*)textViewshouldChangeTextInRange:(NSRange)rangereplacementText:(NSString*)text { if([textisEqualToString:@"\n"]){ [textViewresignFirstResponder]; returnNO; } returnYES; }
3)还有你也可以自定义其他加载键盘上面用来退出,比如在弹出的键盘上面加一个view来放置退出键盘的Done按钮。
代码如下:
UIToolbar*topView=[[UIToolbaralloc]initWithFrame:CGRectMake(0,0,320,30)]; [topViewsetBarStyle:UIBarStyleBlack]; UIBarButtonItem*btnSpace=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; UIBarButtonItem*doneButton=[[UIBarButtonItemalloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)]; NSArray*buttonsArray=@[btnSpace,doneButton];; [doneButtonrelease]; [btnSpacerelease]; [topViewsetItems:buttonsArray]; [textViewsetInputAccessoryView:topView];//当文本输入框加上topView [topViewrelease]; topView=nil; -(IBAction)dismissKeyBoard { [tvTextViewresignFirstResponder]; }
总结
到此这篇关于iOS中各种UI控件属性设置的文章就介绍到这了,更多相关iOS各种UI控件属性设置内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!