IOS ui基础 uibutton

前面写了UIWindow、UIViewController,那些都是一些框架,框架需要填充上具体的view才能组成我们的应用,移动应用开发中UI占了很大一部分,最基础的UI实现是使用系统提供的各种控件,其他的就是自定义实现了,作者目前是入门状态,只能写写基础控件了。

      iOS中提供了UIButton、UILable、UITextField、UIImageView等基础UI控件,继承于UIView。这里先拿UIButton练练手,为什么拿UIButton呢,因为UIbutton继承自UIControl,UIControl派生自UIView类,每个控件都有很多视图的特性,包括附着于其他视图的能力,所有控件都拥有一套共同的属性和方法,包含显示内容,点击事件等等,UIControl的子类都有事件处理能力。

图、UIControl


UIButton的定义:

     UIButton可使用 initWithFrame、buttonWithType两种方式创建:

1)initWithFrame

  1. UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(60, 60, 200, 60)];  
  2.   btn.backgroundColor=[UIColor greenColor];  
  3.   [btn setTitle:@"btn1" forState:UIControlStateNormal];  
  4.   [self.view addSubview:btn];  

2)buttonWithType

  1. UIButton *btn2=[UIButton buttonWithType:UIButtonTypeRoundedRect];  
  2.     CGRect rect=CGRectMake(60, 160, 200, 60);  
  3.     btn2.frame=rect;  
  4.     btn2.tag=1001;  
  5.     btn2.backgroundColor=[UIColor colorWithRed:30/255.0 green:200/255.0 blue:125/255.0 alpha:1.0];  
  6.     [btn2 setTitle:@"btn2" forState:UIControlStateNormal];  
  7.   
  8.     [btn2 addTarget:self action:@selector(btn2Pressed) forControlEvents:UIControlEventTouchDown];  
  9.     [self.view addSubview:btn2];  
btn2Pressed方法:

  1. -(void)btn2Pressed{  
  2.   
  3.     NSLog(@"button pressed");  
  4. }  

UIButtonType:

  1. typedef enum {  
  2.     UIButtonTypeCustom = 0,           // no button type   自定义,无风格  
  3.     UIButtonTypeRoundedRect,          // rounded rect, flat white button, like in address card 白色圆角矩形,类似偏好设置表格单元或者地址簿卡片  
  4.     UIButtonTypeDetailDisclosure,//蓝色的披露按钮,可放在任何文字旁  
  5.     UIButtonTypeInfoLight,//微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁  
  6.     UIButtonTypeInfoDark,//白色背景下使用的深色圆圈信息按钮  
  7.     UIButtonTypeContactAdd,//蓝色加号(+)按钮,可以放在任何文字旁  
  8. } UIButtonType;  

UIButton常用属性:

//设置对应状态的标题内容default is nil. title is assumed to be single line

- (void)setTitle:(NSString *)title forState:(UIControlState)state;  

//设置对应状态的标题颜色           

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;   

//设置对应状态的标题阴影颜色            

- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state;          

//设置对应状态的按钮的图片

- (void)setImage:(UIImage *)image forState:(UIControlState)state;        

//设置对应状态的按钮背景图片

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;    


UIButton的UIControlState   :     

  1. typedef NS_OPTIONS(NSUInteger, UIControlState) {  
  2.     UIControlStateNormal       = 0,  
  3.     UIControlStateHighlighted  = 1 << 0,                  // used when UIControl isHighlighted is set  
  4.     UIControlStateDisabled     = 1 << 1,  
  5.     UIControlStateSelected     = 1 << 2,                  // flag usable by app (see below)  
  6.     UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use  
  7.     UIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use  
  8. };  



更多属性可参考官方文档。

UIButton添加事件:

UIButton使用如下方法添加事件。

  1. [btn addTarget:<#(id)#> action:<#(SEL)#> forControlEvents:<#(UIControlEvents)#>]  

这些事件都是基于触摸、基于值、基于编辑。可相应如下事件。

  1. typedef NS_OPTIONS(NSUInteger, UIControlEvents) {  
  2.     UIControlEventTouchDown           = 1 <<  0,      // on all touch downs  
  3.     UIControlEventTouchDownRepeat     = 1 <<  1,      // on multiple touchdowns (tap count > 1)  
  4.     UIControlEventTouchDragInside     = 1 <<  2,  
  5.     UIControlEventTouchDragOutside    = 1 <<  3,  
  6.     UIControlEventTouchDragEnter      = 1 <<  4,  
  7.     UIControlEventTouchDragExit       = 1 <<  5,  
  8.     UIControlEventTouchUpInside       = 1 <<  6,  
  9.     UIControlEventTouchUpOutside      = 1 <<  7,  
  10.     UIControlEventTouchCancel         = 1 <<  8,  
  11.   
  12.     UIControlEventValueChanged        = 1 << 12,     // sliders, etc.  
  13.   
  14.     UIControlEventEditingDidBegin     = 1 << 16,     // UITextField  
  15.     UIControlEventEditingChanged      = 1 << 17,  
  16.     UIControlEventEditingDidEnd       = 1 << 18,  
  17.     UIControlEventEditingDidEndOnExit = 1 << 19,     // 'return key' ending editing  
  18.   
  19.     UIControlEventAllTouchEvents      = 0x00000FFF,  // for touch events  
  20.     UIControlEventAllEditingEvents    = 0x000F0000,  // for UITextField  
  21.     UIControlEventApplicationReserved = 0x0F000000,  // range available for application use  
  22.     UIControlEventSystemReserved      = 0xF0000000,  // range reserved for internal framework use  
  23.     UIControlEventAllEvents           = 0xFFFFFFFF  
  24. };  



/**
* @author 张兴业
*  iOS入门群:83702688
*  android开发进阶群:241395671
*  我的新浪微博:@张兴业TBOW
*/

参考:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html


http://developer.apple.com/library/ios/#documentation/uikit/reference/UIKit_Framework/Introduction/Introduction.html#//apple_ref/doc/uid/TP40006955-CH1-SW1




一、UIKit结构图

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值