一、创建,两种方法:

  1. 常规的 initWithFrame

    UIButton *btn1 = [[UIButton alloc]initWithFrame:CGRectMake(10, 10, 80, 44)];

  2. UIButton 的一个类方法(也可以说是静态方法)buttonWithType

    UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    风格有如下:

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

  1.Frame属性

  第2种方法创建按钮后你可以给按钮的frame属性赋值,用一个CGRect结构设置他的位置和大小

  CGRect btn2Frame = CGRectMake(10.0, 10.0, 60.0, 44.0);

  btn2.frame =btn2Frame;

  2. title属性

    [btn1 setTitle:@"BTN1" forState:UIControlStateNormal];

  3.图片属性:

    [btn2 setImage:[UIImage imageNamed:@"pic"] forState:UIControlStateNormal];

    用setImage设置图片不会填满button,上下会有空余;用setBackgroundImage会填满button;

  4.按钮标题的颜色和阴影,以及按钮的背景。方法 setTitleColor 和 setTitleShadowColor 都需要一个UIColor对象做参数:

    [btn1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];//设置标题颜色

    [btn1 setTitleShadowColor:[UIColor grayColor] forState:UIControlStateNormal ];//阴影

    [btn1 setBackgroundImage:[UIImage imageNamed:@"PIC"] forState:UIControlStateHighlighted];//背景图像

    上面几个方法都提到 共同的参数 forState . 这个参数决定了标题、图像或其他属性将在何种状态下显现。你可以编程令按钮在那个状态变化

enum {
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  为内部框架预留的
};
typedef NSUInteger UIControlState;

      选中状态:button.selected = YES;

      高亮状态:当点击button时;

  5.1>修改按钮上的字体的大小:  btn.titleLabel.font = [UIFont systemFontOfSize: 14.0];

   2>让UIButton的title居左对齐:btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;

   3>此时文字会紧贴到左边框,我们想使文字距离做边框保持10个像素的距离。btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);

  6.添加事件:

    1.- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

    这些事件都是基于触摸、基于值、基于编辑。有如下事件会触发。

    在点击按钮是按钮是凹下去,然后弹起才触发起事件,按钮的状态有:

typedef NS_OPTIONS(NSUInteger, UIControlEvents) {
UIControlEventTouchDown = << , // on all touch downs, 按下按钮
UIControlEventTouchDownRepeat = << , // on multiple touchdowns (tap count > 1),(单击不满足,快速
                                                    点击两次调用一次方法,快速点击三次调用三次方法,n次调用n次方法)
UIControlEventTouchDragInside = << ,    //在button内拖动时,不断调用方法.
UIControlEventTouchDragOutside = << ,    //当从button内拖动到button外时,不断动用方法.(button内时不调用)
UIControlEventTouchDragEnter = << ,    //从控件窗口之外拖动到内部时
UIControlEventTouchDragExit = << ,    //从控件窗口内部拖动到外部时
UIControlEventTouchUpInside = << ,   //单击,在按钮范围内松开
UIControlEventTouchUpOutside = << ,    //单击,在按钮外面松开
UIControlEventTouchCancel = << ,    //所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上
                                                    锁或者电话呼叫打断。 UIControlEventValueChanged = << , // sliders, etc.当控件的值发生改变时,发送通知。用于滑块、分段控件
                                                    、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放
                                                    下时发送,或者在被拖动时发送。
UIControlEventPrimaryActionTriggered NS_ENUM_AVAILABLE_IOS(9_0) = << , // semantic action: for buttons, etc. UIControlEventEditingDidBegin = << , // UITextField.当文本控件中开始编辑时发送通知
UIControlEventEditingChanged = << ,   // 当文本控件中的文本被改变时发送通知。
UIControlEventEditingDidEnd = << ,   // 当文本控件中编辑结束时发送通知。
UIControlEventEditingDidEndOnExit = << , // 'return key' ending editing,当文本控件内通过按下回车键(或等
                                                    价行为)结束编辑时,发送通知。 UIControlEventAllTouchEvents = 0x00000FFF, // for touch events,通知所有触摸事件。
UIControlEventAllEditingEvents = 0x000F0000, // for UITextField.通知所有关于文本编辑的事件。
UIControlEventApplicationReserved = 0x0F000000, // range available for application use
UIControlEventSystemReserved = 0xF0000000, // range reserved for internal framework use
UIControlEventAllEvents = 0xFFFFFFFF // 通知所有事件。
};

  2.adjustsImageWhenDisabled

    当按钮禁用的情况下,图像的颜色会被画深一点,默认为YES。

  3.adjustsImageWhenHighlighted

    当按钮高亮的情况下,图像的颜色会被画深一点,默认为YES。

  4.showsTouchWhenHighlighted

    button.showsTouchWhenHighlighted=YES;点击时的闪光效果会被前景图片遮住中间部分;

  5.contentEdgeInsets

    设置按钮的内部内容(包含按钮图片和标题)离按钮边缘上下左右的距离。

  6.使用storyboard设置UIButton的圆角/边框等

      

UIButton常见属性和方法的更多相关文章

  1. UIButton 头文件常见属性和方法

    UIButton头文件常见属性 1.属性 contentEdgeInsets: default is UIEdgeInsetsZero.设置内容四边距,默认边距为0 @property(nonatom ...

  2. iOS- <项目笔记> UIApplication常见属性与方法总结

    UIApplication 1.简介 1> 整个应用程序的象征,一个应用程序就一个UIApplication对象,使用了单例设计模式 2> 通过[UIApplication sharedA ...

  3. UIButton 的属性与方法

    UIButton *btn=[UIButtonbuttonWithType:UIButtonTypeCustom];//一般都是设置为该类型 btn.frame=CGRectMake(100, 80, ...

  4. iOS开发UIScrollView常见属性和方法

    一.ScrollView常用方法和属性 @property(nonatomic)CGPoint contentOffset; 设置滚动的偏移量 @property(nonatomic)CGSize c ...

  5. iOS中UIPickerView常见属性和方法的总结

    UIPickerView是iOS中的原生选择器控件,使用方便,用法简单,效果漂亮. @property(nonatomic,assign) id<UIPickerViewDataSource&g ...

  6. iOS webView的常见属性和方法

    一.初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种: 第一种: - (void)load ...

  7. JS中字符串的常见属性及方法

    1.属性 1.1.length var txt = "abc 123"; console.log(txt.length); 2.方法 2.1.返回字符位置(indexOf()) 该 ...

  8. iOS:UIView、UIControl、UIButton、UILabel简单的属性和方法常识

    常见属性和方法 一 .UIVIew 常见属性 1.frame 位置和尺寸(以父控件的左上角为原点(0,0)) 2.center 中点 (以父控件的左上角为原点(0,0)) 3.bounds 位置和尺寸 ...

  9. iOS基础--UIView的常见属性

    UIView的常见属性以及方法 @property(nonatomic,readonly) UIView *superview; // 获得自己的父控件对象 @property(nonatomic,r ...

随机推荐

  1. android test控件

    1.Plain Text 输入文本框 <EditText android:id="@+id/editText" android:layout_width="wrap ...

  2. 【SQL Server 学习系列】-- 获取字符串中出现某字符的次数及字符某次出现的下标

    ) = '1_BB_CC_DD_AA_EE_YY_WW_HH_GG' --// 1. 获取下划线在字符串中出现的次数 SELECT LEN(@Str) - LEN(REPLACE(@Str, '_', ...

  3. Java8 ChronoUnits枚举

    原文:http://www.yiibai.com/java8/java8_chronounits.html java.time.temporal.ChronoUnit 枚举在 Java8 中添加,以取 ...

  4. 【js html】对于<img>图片的引用填充,src可以给什么值?

    平时多见的<img>的使用,常见于如下: <img class="img-responsive img-rounded" src="static/img ...

  5. ASP.NET Core 如何记录每次响应的Response信息 - sky 胡萝卜星星 - CSDN博客

    原文:ASP.NET Core 如何记录每次响应的Response信息 - sky 胡萝卜星星 - CSDN博客 上一篇文章中我们已经成功的记录了Request部分的信息,现在我们来看下如何记录Res ...

  6. java之 ------ 文件的输入、输出(一)

    import java.io.*; public class IntFile { private String filename; public IntFile(String filename) { ...

  7. 基于Office 365 无代码工作流分析-表单基本需求分析!

     3.2表单的制作 基于下图的需求,我们须要定义例如以下的表单列表:

  8. iOS开发之创建颜色渐变视图View

    在iOS开发中有时需要自己自定义一个视图view的背景,而网上有人提出的在循环中不断alloc的方法设置其背景色渐变,会耗费很多内存和资源,极其不明智,而在CALayer中早就提供有图层渐变的类和相应 ...

  9. ime-mode:disabled (用css实现关闭文本框输入法)

    css 之 ime-mode语法:ime-mode : auto | active | inactive | disabled取值:auto : 默认值.不影响ime的状态.与不指定 ime-mode ...

  10. 关于Widget预览图的改动

    在做项目时候,由于常常不带GPS功能.所以在有些细节上须要做处理,当中之中的一个就是.快捷开关的预览图和实际效果图的差异 在我们快捷开关的预览图中,总是能够看到五个快捷开关,事实上就包含GPS信息 而 ...