我的编程空间,编程开发者的网络收藏夹
学习永远不晚

iOS中各种UI控件属性设置示例代码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

iOS中各种UI控件属性设置示例代码


//视图已经加载完了,可以进行ui的添加了
- (void)viewDidLoad {
 [superviewDidLoad];
 // Do any additional setup after loading the view.
 //初始化UILabel注意指定该对象的位置及大小
 UILabel *lb = [[UILabelalloc]initWithFrame:CGRectMake(0,20,300,200)];
 //设置文字
 lb.text =@"label测试我在学习中学些ui story水电费水电费未入围 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. The last line in a paragraph is natural-aligned.
// NSTextAlignmentNatural = 4, // Indicates the default alignment for script

 //换行模式
 lb.lineBreakMode =NSLineBreakByCharWrapping;
// NSLineBreakByWordWrapping = 0, //每一行的结尾以字或者一个完整单词换行(若不够一个单词的位置)
// NSLineBreakByCharWrapping,//在每一行的结尾以字母进行换行
// NSLineBreakByClipping,// Simply clip
// NSLineBreakByTruncatingHead,// Truncate at head of line: "...wxyz"
// NSLineBreakByTruncatingTail,// Truncate at tail of line: "abcd..."
// NSLineBreakByTruncatingMiddle// Truncate middle of line: "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文本多行信息

创建标签


@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 = @"首行缩进根据用户昵称自动调整 间隔可自定根据需求随意改变。。。。。。。" ;
self . contentLabel . adjustsFontSizeToFitWidth = YES ;
self . contentLabel . adjustsLetterSpacingToFitWidth = YES ;
[ self resetContent ];
}

自适应计算间距


- ( 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 ]; //首行缩进 根据用户昵称宽度在加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; //当文字超过视图的边框时是否允许滑动,默认为“YES”
 textview.editable = YES;  //是否允许编辑内容,默认为“YES”
 textview.delegate = self;  //设置代理方法的实现类
 textview.font=[UIFont fontWithName:@"Arial" size:18.0]; //设置字体名字和字体大小;
 textview.returnKeyType = UIReturnKeyDefault;//return键的类型
 textview.keyboardType = UIKeyboardTypeDefault;//键盘类型
 textview.textAlignment = NSTextAlignmentLeft; //文本显示的位置默认为居左
 textview.dataDetectorTypes = UIDataDetectorTypeAll; //显示数据类型的连接模式(如电话号码、网址、地址等)
 textview.textColor = [UIColor blackColor];
 textview.text = @"UITextView详解";//设置显示的文本内容
 [self.view addSubview:textview];

UITextView的代理方法如下:


//将要开始编辑
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;

//将要结束编辑
- (BOOL)textViewShouldEndEditing:(UITextView *)textView;

//开始编辑
- (void)textViewDidBeginEditing:(UITextView *)textView;

//结束编辑
- (void)textViewDidEndEditing:(UITextView *)textView;

//内容将要发生改变编辑
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text;

//内容发生改变编辑
- (void)textViewDidChange:(UITextView *)textView;

//焦点发生改变
- (void)textViewDidChangeSelection:(UITextView *)textView;

有时候我们要控件自适应输入的文本的内容的高度,只要在textViewDidChange的代理方法中加入调整控件大小的代理即可


- (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];

 //重新调整textView的高度
 textView.frame =CGRectMake(textView.frame.origin.x,textView.frame.origin.y,textView.frame.size.width,sizeFrame.height+5);
}

控制输入文字的长度和内容,可通调用以下代理方法实现


- (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退出键盘的几种方式

因为iphone的软键盘没有自带的退键盘键,所以要实现退出键盘需要自己实现,有如下几种方式:

1)如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实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里不用回车键,可以把回车键当做退出键盘的响应键。

代码如下:


-(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];//当文本输入框加上topView
 [topView release];
 topView = nil;

-(IBAction)dismissKeyBoard
{
 [tvTextView resignFirstResponder];
}

总结

到此这篇关于iOS中各种UI控件属性设置的文章就介绍到这了,更多相关iOS各种UI控件属性设置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

iOS中各种UI控件属性设置示例代码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

iOS中各种UI控件属性设置示例代码

//视图已经加载完了,可以进行ui的添加了 - (void)viewDidLoad {[superviewDidLoad];// Do any additional setup after loading the view.//初始化UIL
2022-05-29

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录