IOS:UI设计之UIButton相关基础

  UIBotton---UI里面很重要,且很基础的一个控件,主要是用来点击并触发事件,在这里,主要与UIImageView区分开来;

  UIImageView主要用在显示图片上,而且只能显示图片,不能显示文字,当然UIImageView并不是绝对不能添加触发事件,但它用到的是UITapGestureRecognizer(手势识别,这里不详解)

  而UIBotton既显示图片又显示文字(因为其内部默认有两个控件一个是UIImageView,一个UILabel,所以当用代码给按钮设置字体属性的时候利用UIButton的.TitleLabel返回这个UILabel设置。)而且可以被点击从而触发事件,UIBotton继承自UIControl,UIControl有AddTarget方法,所以UIButton拥有处理点击事件的能力。(凡是继承自UIControl的控件都能监听点击事件

  下面是一些关于UIBotton的用法代码:

      //初始化方法:

      //UIBotton的初始化方法一般不用”alloc“和”initwithframe“,因为UIButton有一个属性叫做buttonType,也就是按钮风格,这个属性是只读的,必须在初始化的时候设定,如果你不设定,他以后是没办法修改的,默认为UIButtonTypeCustom,不加背景图片根本看不见这个按钮,而他的Frame是可以初始化以后再修改的。

  1.1.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeRoundedRect];   

         //“"这是在IOS6系统上的显示样式,而IOS7系统上时,则变成““  白色,圆角,矩形

  1.2.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeContactAdd];    

         //""这是在IOS6系统上的显示样式,而IOS7系统上时,则变成“”其实它是个矩形,其长度与宽度按自定义的frame为准,只是背景透明(UIButtonTypeInfoDaskUIButtonTypeDetailDisclosure,UIButtonTypeInfoLight 也是如此)

   1.3.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeCustom];    //此样式用于需要自定义设置按钮在不同状态下(被点击前,被点击时,被点击后)的不同形式,例如:被点击前按钮是灰暗的,被点击时是高亮的,被点击后是中度亮度。自定义,无风格。

     1.4.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeInfoDask];    //白色背景下使用的深色圆圈信息按钮

        //""这是在IOS6系统上的显示样式,而IOS7系统上时,则变成“

   1.5.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeInfoLight];   //微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁

        //""这是在IOS6系统上的显示样式,需要在背景颜色不是白色下才能更有效地显示出来,而IOS7系统上时,则变成“

   1.6.UIBotton *botton = [UIBotton buttonWithType:UIButtonTypeDetailDisclosure];    //蓝色小箭头按钮,主要做详细说明用

        //""这是在IOS6系统上的样式,在IOS7系统上则变成“

  button.frame = CGRectMake(90,100,140,50);   //必须给button添加frame,否则显示不出来

  //设置在某一状态下按钮标题,图像

   [button setTitle:@"确定" forState:UIControlStateNormal];  // 这是常态下设置标题

                   UIControlStateHighlighted;    //高亮(按住,还没有松手时)

                   UIControlStateDisabled;     //禁用     此状态下先设置:Button.enabled = NO;

                   UIControlStateSelected;       //选中   此状态下先设置:Button.selected = YES;

  [button setTitleEdgeInsets:UIEdgeInsetsMake(5,5,5,5)];   //按钮的标题位置偏移,距离上,左,下,右的距离

  [button setTitleColor:[UIColor redColor] forState:UIContorlStateNormal];   //设置不同状态下的标题的颜色

  [button setTitleShadowColor:[UIColor grayColor] forState:UIContorlStateNormal]; //设置不同状态下的标题的阴影颜色

  button.titleLabel.shadowoffset = CGSizeMake(5,5);  //设置阴影偏移位置,向右向下为正,向左向上为负

  [button setBackgroundImage:[UIimage imageNamed:@“text.jpg”] forState:UIContorlStateNormal];    //设置不同状态下按钮的背景颜色

  [button setImage:[UIImage imageNamed:@“text.jpg”] forState:UIContorlStateNormal];  //设置按钮的某一状态下是图片(自己先细细体味一下setImage和setBackgroundImage有什么不同吧,setBackgroundImage会对图片进行拉伸,以button的frame为大小,而setImage则按原图大小显示)

        //给button设置成圆形
  button.layer.cornerRadius = 50;  // 设置button的圆角半径,这样按钮就变成了园的
  
  [button.layer masksToBounds];   // 将button上的图片一样变成圆形
  
  button.layer.borderWidth = 3;    // 添加边框
  
  button.layer.borderColor = [UIColor orangeColor].CGColor;  // 边框颜色 注意要加.CGColor属性

       //对按钮的外观进行微调

  button.adjustsImageWhenHighlighted = NO ;   //默认情况下,在按钮被禁用时,图片会被画的颜色深一点,根据自己需求设置YES或NO

  button.adjustsImageWhenDisabled = NO;   //默认情况下,在按钮被禁用时,图片会被画的颜色淡一点,根据自己需求设置YES或NO

  button.showsThouchWhenHighlighted = YES ; //此属性设置为YES时,可令按钮在按下时发光

  [self.view addSubview:button]; //显示控件,不用刻意记都知道的吧?!

  [button addTarget:self action:@selector(text:) forContorlEvents:UIContorlEventTouchUpInside];   //按钮的特点,就是点击并触发事件,此处事件方法为“text:”,触发方法是:点击并抬起(Xcode里面提供了几种触发方法,可以自行尝试)

-(void)text:(id)sender

{

    UIButton *button = (UIButton *)sender;

  //触发的事件代码

}

(可能学得比较浅,大家要是有补充可以留言,有问题的大家一起探讨下,可以私下联系:QQ790444804    微信:hgwchihuo

                                                -------我是快乐的小尾巴`(*∩_∩*)′)

原文地址:https://www.cnblogs.com/welcometheday/p/4458844.html