UIButton的一些常用知识点

关于UIButton的一些常用资料:

    //创建按钮
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    /*  UIButtonType  按钮类型:(前两种是常用类型)

     UIButtonTypeCustom = 0,                         // no button type//自定义类型
     UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0),  // standard system button//系统类型, 标准类型

     UIButtonTypeDetailDisclosure,
     UIButtonTypeInfoLight,
     UIButtonTypeInfoDark,
     UIButtonTypeContactAdd,

     UIButtonTypeRoundedRect = UIButtonTypeSystem,   // Deprecated, use UIButtonTypeSystem instead
     */

    //设置按钮属性
    button.frame = CGRectMake(50, 100, 200, 50);//设置位置和大小  (必须的一步)
    button.backgroundColor = [UIColor yellowColor];//背景颜色

    [button setTitle:@"登录" forState:UIControlStateNormal];//按钮文字, 正常状态
    [button setTitle:@"按下" forState:UIControlStateHighlighted];//按钮文字, 高亮状态
    /*  UIControlState  按钮控制器状态:

     UIControlStateNormal       = 0,                       //  正常状态
     UIControlStateHighlighted  = 1 << 0,                  // used when UIControl isHighlighted is set  高亮状态, (按钮被按下)
     UIControlStateDisabled     = 1 << 1,                  //  不可用状态
     UIControlStateSelected     = 1 << 2,                  // flag usable by app (see below)  选中状态
     UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use
     UIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use
     */
    //button.enabled = NO;//设置为不可用状态(默认为YES, 可用)
    //button.selected = YES;//设置为选中状态(默认为NO, 非选中状态)
    //  其他根据状态设置的按钮属性
    //最上层(和文字一层)的图片 和 背景图片: 设置了正常状态下的,高亮状态下也显示, 设置了高亮状态下的,正常状态下不显示
    [button setImage:[UIImage imageNamed:@"001.png"] forState:UIControlStateNormal];//正常状态下的图片(和文字一层)
    //图片默认添加在文字前面, 和文字一层, 会把文字挤到后面.  注意按钮的大小, 防止文本空间不够, 变成"..."
    [button setImage:[UIImage imageNamed:@"10.png"] forState:UIControlStateHighlighted];//高亮状态下的图片
    [button setBackgroundImage:[UIImage imageNamed:@"002.jpg"] forState:UIControlStateNormal];//正常状态下的背景图片
    [button setBackgroundImage:[UIImage imageNamed:@"5.png"] forState:UIControlStateHighlighted];//高亮状态下的背景图片
    //添加图片: png图片可以省略后缀, 其他图片要加上后缀.
    [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];//设置按钮字体颜色, 和图片一样, 设置了正常状态下的, 高亮状态下的也改变.  设置了高亮状态下的, 正常状态下不改变.
    //如果不设置,system类型的默认是蓝色.  custom自定义类型的相当于没有设置, 无色/白色
    //关于图片显示: system类型不显示最上层(和文字一层)的图片, 想显示最上层的图片需要改成custom类型
    [button setTintColor:[UIColor redColor]];//改变最上层字体颜色 和 图片背景色
    //关于字体颜色 和 图片背景色: system类型的可以用setTintColor方法改变最上层字体颜色 和 图片背景颜色(因为显示不了图片就可以看到图片的背景色). 而且, 如果前面或者后面已经单独设置了字体的颜色, setTintColor方法并不改变字体的颜色,只改变图片的背景色.
    //custom类型的按钮, setTintColor方法是无效的.
    button.titleLabel.font = [UIFont systemFontOfSize:15.2];//改变字体大小. 字体会变成单独的一层
    //其他:
    button.showsTouchWhenHighlighted = YES;//设置为YES以后,点击按钮, 按钮会发光.  默认为NO
    //按着CMD键, 鼠标点击进去. 就可以看到相邻的几个其他设置, 比如标题文本的阴影设置等

    //把按钮添加到父视图上
    [self.view addSubview:button];
    //释放空间
    //button是通过便利构造器创建的, 没有alloc, 不释放

    //总结: 一般, 简单的UIButton对象由两层组成, 下面一层是UIButton, 上面一层是UIButtonLabel(这一层可以加图片UIImageView), 显示按钮文本(按钮名称)
    //如果添加按钮背景图片, 在UIButton和UIButtonLabel中间会增加一层UIImageView.  如果改变字体大小, 又会增加一层字体层, 在最上面.
    //运行程序之后可以点击调试窗口上面的Debug View Hierarchy(调试视图层次)来查看
    //当然, UIButton作为UIView的一个子类, 上面可以继续添加其他的View子视图

参考文档:  http://blog.csdn.net/heng615975867/article/details/38873647

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 15:56:20

UIButton的一些常用知识点的相关文章

CSS3常用知识点

CSS3常用知识点 1 css3选择器 1.1 属性选择器 /* E[attr~=val] 表示的一个单独的属性值 这个属性值是以空格分隔的*/ .attr2 a[class~="kawa"] { //TODO } /* E[attr|=val] 表示的要么一个单独的属性值 要么这个属性值是以"-"分隔的*/ .attr3 a[class|="kawa"] { //TODO } /* E[attr*=val] 表示的属性值里包含val字符并且在&

移动端常用知识点

对移动端的开发也不是非常了解,只是做过一些手机端项目,小编今天在这里整理一些常用的移 动开发知识点,有兴趣的朋友也可以了解一下,当然,如果有所补充,也可发email给小编哦- -- 1.viewport :所谓viewport,即除去所有工具栏.状态栏.滚动条等之后用于查看网页的区域,假设现在有一张报纸摆在你面前,但是这张报纸被一本书压住了,所以你只能看到报纸的一部分,这部分的可视区域就是指viewport: 1 <meta name="viewport" content=&qu

java学习中,接口的使用(重要,常用知识点)(java 学习中的小记录)

java学习中,接口的使用(重要,常用知识点)(java 学习中的小记录)作者:王可利(Star·星星) 接口(功能:用来添加拓展功能的) 例子:铅笔.带橡皮檫的铅笔. 两个功能:     1.写字......> 铅笔     2.擦字......> 橡皮擦 想法:定义一个铅笔类,定义一个橡皮擦类,定义一个带橡皮擦的铅笔类继承 铅笔类和橡皮擦类 但是java是单继承的.于是就有了解决的方法:接口(可以添加拓展功能) 如:一个铅笔类,给它添加一个接口给它一个拓展类(橡皮擦类) 接口的定义模式 用

php 常用知识点

1,运算优先级 $a = 3; $b = 5; if ($a=5 || $b = 7) { $a++; $b++; } echo $a."#".$b; //结果 1#6 //逻辑运算符优先级高于赋值运算符,var_dump(3 || $b=4) 结果为bool(true) ,所以$a也为bool(true),值永远为1,不会自加.$b并没有被赋值,所以值还是5,结果就是5+1=6: $a = 3; $b = 5; if ($a=5 && $b = 7) { $a++;

javascript常用知识点总结

一.常用知识点 1.赋值 var x=10 y=x console.log(x) #10 console.log(y) #10 2.比较运算符 == | === console.log("5"==5)#True 只做值比较 console.log("5"===5)#False 比较值及类型 != | !== console.log("5"!=5)#False 只做值比较 console.log("5"!==5)#True 比较

css的常用知识点

一.css的引入方式 1.行内引入 直接在标签中定义样式 <p style="background-color: red">test</p> 2.嵌入式引入 将css代码通过<style></style>标签,直接写在文件中 <head>     <meta charset="UTF-8">     <title>Title</title>     <style&g

ES6常用知识点

ES6常用知识,职场足用! 1.变量声明const和let 在ES6之前,我们都是用var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: function aa() { if(flag) { var test = 'hello man' } else { console.log(test) } } 以上的代码实际上是: function aa() { var test // 变量提升,函数最顶部 if(flag) { t

dWebBrowser常用知识点

1.webbrowser调用的就是本机IE,并且webbrowser默认就是运行在IE7 mode下,除非你改变它. 2.不装IE,无法用webbrowser. 3.设置WebBrowser在IE9 mode下工作呢 There are two different sets of keys for 32 bit and 64 bit applications. 32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN

测试开发系类之Java常用知识点

测试需要的两门语言:Java,Python 测试开发:开发测试脚本->开发测试框架 Java需要掌握内容:基础语法.Java面向对象相关概念.Java常用类.基础测试框架 Java常用类: IO相关类,包括: 字节流InputStream,OutputStream,音频视频等 字符流Reader,Writer InputStreamReader,字节到字符的桥梁 OutputStreamWriter,字符到字节的桥梁 集合相关类: Collection(接口)->List->(Array