你的位置:首页 > 操作系统

[操作系统]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填充图片和背景图片

  [buttonsetImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];

  [buttonsetBackgroundImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];

  第六、设置button标题和标题颜色

  [button1 setTitle: @"点击" forState:UIControlStateNormal];

  [buttonsetTitleColor:[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];   // 添加这个文本框 ,最后控件都需要添加

 

【注】上面的总结(有些是百度的)大家可以试着用一下,😊实践是检验真理的唯一标准