UIButton、UILabel、UITextField 初学者需要了解的基本定义和常用设置
以下是三个IOS开发中最常用的控件,作为IOS基础学习教程知识 ,初学者需要了解其基本定义和常用设置,以便在开发在熟练运用。
UIButton按钮
第一、UIButton的定义
UIButton *button=[[UIButton buttonWithType:(UIButtonType);
能够定义的button类型有以下6种,
typedef enum {
UIButtonTypeCustom = 0, 自定义风格
UIButtonTypeRoundedRect, 圆角矩形
UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用
UIButtonTypeInfoLight, 亮色感叹号
UIButtonTypeInfoDark, 暗色感叹号
UIButtonTypeContactAdd, 十字加号按钮
} UIButtonType;
第二、设置frame
button1.frame = CGRectMake(20, 20, 280, 40);
[button setFrame:CGRectMake(20,20,50,50)];
第三、button背景色
button1.backgroundColor = [UIColor clearColor];
[button setBackgroundColor:[UIColor blueColor]];
第四、state状态
forState: 这个参数的作用是定义按钮的文字或图片在何种状态下才会显现
enum {
UIControlStateNormal = 0, 常规状态显现
UIControlStateHighlighted = 1 << 0, 高亮状态显现
UIControlStateDisabled = 1 << 1, 禁用的状态才会显现
UIControlStateSelected = 1 << 2, 选中状态
UIControlStateApplication = 0x00FF0000, 当应用程序标志时
UIControlStateReserved = 0xFF000000 为内部框架预留,可以不管
};
@property(nonatomic,getter=isEnabled)BOOL enabled; // default is YES. if NO, ignores touch events and subclasses may draw differently
@property(nonatomic,getter=isSelected)BOOL selected; // default is NO may be used by some subclasses or by application
@property(nonatomic,getter=isHighlighted)BOOL highlighted;
第五 、设置button填充图片和背景图片
[button setImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];
[button setBackgroundImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];
第六、设置button标题和标题颜色
[button1 setTitle: @"点击" forState:UIControlStateNormal];
[button setTitleColor:[UIColorredColor]forState:UIControlStateNormal];
第七、设置按钮按下会发光
button.showsTouchWhenHighlighted=NO;
第八、添加或删除事件处理
[button1 addTarget:self action: @selector(butClick:) forControlEvents:UIControlEventTouchUpInside];
[btn removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];
第九、 设置按钮内部图片间距和标题间距
UIEdgeInsets insets; // 设置按钮内部图片间距
insets.top = insets.bottom = insets.right = insets.left = 10;
bt.contentEdgeInsets = insets;
bt.titleEdgeInsets = insets; // 标题间距
第十、 其他
// 设置按钮为无效按钮,如果按钮无效了,按钮就不再响应用户了
btn.enabled = YES;
// 给按钮添加手势识别器
[btn addGestureRecognizer:tap];
// 添加一个按钮 ,示例
UIButton *calBtn = [[UIButton alloc]initWithFrame:CGRectMake(50, 200, 200, 40)]; // 按钮大小
calBtn.backgroundColor = [UIColor orangeColor]; // 背景颜色
[calBtn setTitle:@"点我,我就计算" forState:UIControlStateNormal]; // 设置默认状态下的文字
[calBtn setTitle:@"点我,我就计算" forState:UIControlStateHighlighted]; // 设置高亮状态下的文字
[calBtn setBackgroundImage:[UIImage imageNamed:@"login_btn_n_Normal"] forState:UIControlStateNormal]; // 设置默认状态下的背景图片
[calBtn setBackgroundImage:[UIImage imageNamed:@"logoff_btn_n_Highlighted"] forState:UIControlStateHighlighted]; // 设置高亮状态下的背景图片
[self.view addSubview:calBtn]; // 最会一定要添加按钮
【注】图片的名称要提前修改好,最好在后面加上分辨是默认状态还是高亮状态的单词
UILabel标签
UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(50, 100, 300, 160)]; // 大小
lbl.backgroundColor = [UIColor lightGrayColor]; // 背景颜色
lbl.textColor = [UIColor blueColor]; // 字体颜色
// lbl.shadowColor = [UIColor redColor]; // 阴影效果,不常用
// lbl.shadowOffset = CGSizeMake(4, -10);
lbl.text = @"宿舍的"; // 添加文字
// 标签内容对齐方式
lbl.textAlignment = NSTextAlignmentCenter;
// 设置标签的行数,如果设置为0,表示可以有任意多行
lbl.numberOfLines = 2;
// 当标签有多行时,设置换行方式 ,默认的是以单词为单位
lbl.lineBreakMode = NSLineBreakByTruncatingMiddle; // 如果不能完全显示,中间会有三个小点
// 设置标签高亮状态
lbl.highlighted = YES;
// 设置标签高亮时字体颜色
lbl.highlightedTextColor = [UIColor purpleColor];
// 允许用户可以与标签进行交互
lbl.userInteractionEnabled = YES; //允许用户交互
// 定义一个点击手势识别器对象
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(lblClicked:)];
// 在标签上添加一个手势识别器
[lbl addGestureRecognizer:tap];
// lbl.enabled = NO;
lbl.adjustsFontSizeToFitWidth = YES;
// lbl.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
[self.view addSubview:lbl]; // 控件最后都需要添加
【小结】下面的大家可以试着用一下,😊实践是检验真理的唯一标准
1.text:设置标签显示文本。
2.attributedText:设置标签属性文本。
3.font:设置标签文本字体。
4.textAlignment:设置标签文本对齐方式。
5.lineBreakMode:设置标签文字过长时的显示方式,这个属性使用于label中文本的换行和截短。首先numberofLines必须设置为0,才有效果。
6.enabled:设置文字内容是否可变。
7.adjustsFontSizeToFitWidth:文字内容自适应标签宽度。
8.adjustsLetterSpacingToFitWidth:根据字母的间隔自适应标签宽度,超出部分以……显示。
9.numberOfLines:标签最多显示行数。
10.minimumScaleFactor:设置最小字体,与minimumFontSize相同,minimumFontSize在IOS 6后不能使用。
11.highlightedTextColor:设置文本高亮显示颜色,与highlighted一起使用。
12.shadowColor:设置文本阴影颜色。
13.shadowColor:设置文本阴影与原文本的偏移量。label.shadowOffset = CGSizeMake(1.0, 5.0);
14.userInteractionEnabled:设置标签是否忽略或移除用户交互。默认为NO。
15.preferredMaxLayoutWidth:优先选择标签布局的最大宽度。
16.baselineAdjustment:如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为。
17. backgroundColor 背景颜色
UITextField文本
1.enablesReturnKeyAutomatically
默认为No,如果设置为Yes,文本框中没有输入任何字符的话,键盘右下角的返回按钮是disabled的。
2.borderStyle
设置边框样式,只有设置了才会显示边框样式
text.borderStyle = UITextBorderStyleRoundedRect;
typedef enum {
UITextBorderStyleNone,
UITextBorderStyleLine,
UITextBorderStyleBezel,
UITextBorderStyleRoundedRect
} UITextBorderStyle;
3.backgroundColor
设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉
text.backgroundColor = [UIColor whiteColor];
4.background
设置背景
text.background = [UIImage imageNamed:@"xx.png"]; // UITextField 的背景,注意只有UITextBorderStyleNone的时候改属性有效
设置enable为no时,textfield的背景
text.disabledBackground = [UIImage imageNamed: @"ff.png"];
5.placeholder
当输入框没有内容时, 提示内容为password
text.placeholder = @"password"; // 可以叫他为 占位符
6.font
设置输入框内容的字体样式和大小
text.font = [UIFont fontWithName:@"Arial" size:20.0f];
7. textColor
设置字体颜色
text.textColor = [UIColor redColor];
8. clearButtonMode
输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容
text.clearButtonMode = UITextFieldViewModeAlways;
typedef enum {
UITextFieldViewModeNever, 重不出现
UITextFieldViewModeWhileEditing, 编辑时出现
UITextFieldViewModeUnlessEditing, 除了编辑外都出现
UITextFieldViewModeAlways 一直出现
} UITextFieldViewMode;
9. text
输入框中一开始就有的文字
text.text = @"一开始就在输入框的文字";
10. secureTextEntry
每输入一个字符就变成点 用来输入密码时,设置这个属性。
text.secureTextEntry = YES; // 暗文
11. clearsOnBeginEditing
再次编辑就清空
text.clearsOnBeginEditing = YES;
12. textAlignment
内容对齐方式
text.textAlignment = UITextAlignmentLeft;
13. contentVerticalAlignment
内容的垂直对齐方式 UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment
text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
14. adjustsFontSizeToFitWidth
设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动
textFied.adjustsFontSizeToFitWidth = YES;
// 设置自动缩小显示的最小字体大小
text.minimumFontSize = 20;
15. keyboardType
设置键盘的样式
text.keyboardType = UIKeyboardTypeNumberPad;
typedef enum {
UIKeyboardTypeDefault, 默认键盘,支持所有字符
UIKeyboardTypeASCIICapable, 支持ASCII的默认键盘
UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,支持+*#字符
UIKeyboardTypeURL, URL键盘,支持.com按钮 只支持URL字符
UIKeyboardTypeNumberPad, 数字键盘
UIKeyboardTypePhonePad, 电话键盘
UIKeyboardTypeNamePhonePad, 电话键盘,也支持输入人名
UIKeyboardTypeEmailAddress, 用于输入电子 邮件地址的键盘
UIKeyboardTypeDecimalPad, 数字键盘 有数字和小数点
UIKeyboardTypeTwitter, 优化的键盘,方便输入@、#字符
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
} UIKeyboardType;
16.autocapitalizationType
首字母是否大写
text.autocapitalizationType = UITextAutocapitalizationTypeNone;
typedef enum {
UITextAutocapitalizationTypeNone, 不自动大写
UITextAutocapitalizationTypeWords, 单词首字母大写
UITextAutocapitalizationTypeSentences, 句子的首字母大写
UITextAutocapitalizationTypeAllCharacters, 所有字母都大写
} UITextAutocapitalizationType;
17. returnKeyType
return键变成什么颜色的键
text.returnKeyType =UIReturnKeyDone;
typedef enum {
UIReturnKeyDefault, 默认 灰色按钮,标有Return
UIReturnKeyGo, 标有Go的蓝色按钮
UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索
UIReturnKeyJoin,标有Join的蓝色按钮
UIReturnKeyNext,标有Next的蓝色按钮
UIReturnKeyRoute,标有Route的蓝色按钮
UIReturnKeySearch,标有Search的蓝色按钮
UIReturnKeySend,标有Send的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyEmergencyCall, 紧急呼叫按钮
} UIReturnKeyType;
18. keyboardAppearance
键盘外观
textView.keyboardAppearance=UIKeyboardAppearanceDefault;
typedef enum {
UIKeyboardAppearanceDefault, 默认外观,浅灰色
UIKeyboardAppearanceAlert, 深灰 石墨色
} UIReturnKeyType;
19. rightView
最右侧加图片是以下代码 左侧类似
UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];
text.rightView=image;
text.rightViewMode = UITextFieldViewModeAlways;
typedef enum {
UITextFieldViewModeNever,
UITextFieldViewModeWhileEditing,
UITextFieldViewModeUnlessEditing,
UITextFieldViewModeAlways
} UITextFieldViewMode;
20. editing
是否允许编辑。
21.Stroyboard中:
1、Text :设置文本框的默认文本。
2、Placeholder : 可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容。当这个文本框中输入了数据时,用于提示的灰色的字将会自动消失。
3、Background :
4、Disabled : 若选中此项,用户将不能更改文本框内容。
5、接下来是三个按钮,用来设置对齐方式。
6、Border Style : 选择边界风格。
7、Clear Button : 这是一个下拉菜单,你可以选择清除按钮什么时候出现,所谓清除按钮就是出一个现在文本框右边的小 X ,你可以有以下选择:
7.1 Never appears : 从不出现
7.2 Appears while editing : 编辑时出现
7.3 Appears unless editing :
7.4 Is always visible : 总是可见
8、Clear when editing begins : 若选中此项,则当开始编辑这个文本框时,文本框中之前的内容会被清除掉。比如,你现在这个文本框 A 中输入了 "What" ,之后去编辑文本框 B,若再回来编辑文本框 A ,则其中的 "What" 会被立即清除。
9、Text Color : 设置文本框中文本的颜色。
10、Font : 设置文本的字体与字号。
11、Min Font Size : 设置文本框可以显示的最小字体(不过我感觉没什么用)
12、Adjust To Fit : 指定当文本框尺寸减小时,文本框中的文本是否也要缩小。选择它,可以使得全部文本都可见,即使文本很长。但是这个选项要跟 Min Font Size 配合使用,文本再缩小,也不会小于设定的 Min Font Size 。
接下来的部分用于设置键盘如何显示。
13、Captitalization : 设置大写。下拉菜单中有四个选项:
13.1 None : 不设置大写
13.2 Words : 每个单词首字母大写,这里的单词指的是以空格分开的字符串
13.3 Sentances : 每个句子的第一个字母大写,这里的句子是以句号加空格分开的字符串
13.4 All Characters : 所以字母大写
14、Correction : 检查拼写,默认是 YES 。
15、Keyboard : 选择键盘类型,比如全数字、字母和数字等。
16、Appearance:
17、Return Key : 选择返回键,可以选择 Search 、 Return 、 Done 等。
18、Auto-enable Return Key : 如选择此项,则只有至少在文本框输入一个字符后键盘的返回键才有效。
//添加一个简单的文本框
UITextField *num1Field = [[UITextField alloc]initWithFrame:CGRectMake(20, 100, 100, 40)]; // 大小
num1Field.backgroundColor = [UIColor whiteColor]; // 背景颜色
num1Field.tag = 110; // 标记tag
num1Field.keyboardType = UIKeyboardTypeNumberPad; // 设置键盘
[self.view addSubview:num1Field]; // 添加这个文本框 ,最后控件都需要添加
【注】上面的总结(有些是百度的)大家可以试着用一下,😊实践是检验真理的唯一标准