zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    c#索引器介绍|C#索引器写法|c#索引器例子
    原来查询语句还有这功能,累计变量值
    递归导入access数据winform程序源码
    从sqlserver导入access的最简单的方法
    vs2008中文破解|vs2008中文下载|vs2008正版序列号
    游标遍历标的所有字段代码
    asp.net未知的服务器标记错误
    卓越、当当、京东三大广告联盟比较
    Repeater 的嵌套使用与表克隆
    自动上传编辑器中的远程图片与自动替换alt标签
  • 原文地址:https://www.cnblogs.com/welcometheday/p/4458844.html
Copyright © 2011-2022 走看看