UIKit框架(18)UIButton和UITextField-创新互联

UIButton按钮控件和UITextField输入框控件,是UI开发中比较常用的两个控件

创新互联公司提供成都网站设计、成都网站建设、网页设计,品牌网站建设广告投放等致力于企业网站建设与公司网站制作,十余年的网站开发和建站经验,助力企业信息化建设,成功案例突破上1000家,是您实现网站建设的好选择.

和UILabel、UIImageView、UISwitch相比,用法相对比较丰富

  • UIButton的四个状态

UIButton有四个状态:

//正常状态
UIControlStateNormal 
//高亮状态:当按钮被按下时的状态
UIControlStateHighlighted 
//选中状态:通过UIButton对象的selected属性进行切换
UIControlStateSelected 
//禁用状态:通过UIButton对象的enable属性进行切换,不能接受用户的点击
UIControlStateDisabled

如果设置了正常状态下的文字、图片的数据,其余三个状态也是用这些数据

    高亮状态,颜色加深;禁用状态,颜色变灰

也可以分别设置每一个状态下的文字、图片等数据

  • UIButton的子视图

UIButton内部包含三个子视图:

    一个UILabel文字标签(蓝色)

    一个UIImageView图片控件(默认在文字左边)(橘红色)

    一个UIImageView背景图片空间(在文字和图片空间的下面)(***)

其中后两个子视图,可以不显示数据

    UIKit框架(18)UIButton和UITextField

    UIKit框架(18)UIButton和UITextField

设置数据必须指明是哪个状态下:

- (void)setTitle:(NSString *)title forState:(UIControlState)state
- (NSString *)titleForState:(UIControlState)state
- (void)setImage:(UIImage *)p_w_picpath forState:(UIControlState)state
- (UIImage *)p_w_picpathForState:(UIControlState)state
- (void)setBackgroundImage:(UIImage *)p_w_picpath forState:(UIControlState)state
- (UIImage *)backgroundImageForState:(UIControlState)state

  • UIButton子类

按钮是界面中最常出现的元素,为了定制各种想要的按钮效果,经常实现UIButton子类

可以实现以下效果:

1)UIButton属性的设置封装到构造方法中

2)去掉某些自带效果

    比如去掉高亮状态时的阴影效果,重写highlighted属性的setter方法:什么也不做

3)修改该文字标签和图片的相对位置

    重写以下方法:

- (CGRect)contentRectForBounds:(CGRect)bounds
- (CGRect)p_w_picpathRectForContentRect:(CGRect)contentRect
- (CGRect)titleRectForContentRect:(CGRect)contentRect

  • UITextField上的各种子视图

右侧清除按钮:

@property(nonatomic) UITextFieldViewMode clearButtonMode
typedef enum {
   UITextFieldViewModeNever,
   UITextFieldViewModeWhileEditing,
   UITextFieldViewModeUnlessEditing,
   UITextFieldViewModeAlways 
} UITextFieldViewMode;

左右侧视图,通常放置按钮

@property(nonatomic, strong) UIView *leftView
@property(nonatomic, strong) UIView *rightView

左右侧视图显示模式

@property(nonatomic) UITextFieldViewMode leftViewMode
@property(nonatomic) UITextFieldViewMode rightViewMode

  • UITextField的自定义键盘

通过inputView修改键盘

@property(readwrite, strong) UIView *inputView

    通常是设置为各种选择视图,如:

textField.inputView = [[UIDatePicker alloc] init];

通过inputAccessoryView设置键盘上的工具栏

@property(readwrite, strong) UIView *inputAccessoryView

    工具栏上一般放置各种按钮,如完成、下一个、上一个等

UIToolBar * toolBar = [UIToolBar alloc] init];
textField.inputAccessoryView = toolBar;
toolBar.frame = CGRectMake(0, 0, 375, 20);
//toolBar添加按钮
//...

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

网页名称:UIKit框架(18)UIButton和UITextField-创新互联
分享网址:https://www.cdcxhl.com/article36/djdopg.html

成都网站建设公司_创新互联,为您提供关键词优化网站制作企业建站网站设计移动网站建设网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管