UIButton常见属性和方法

一、创建,两种方法:

  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];

  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;

  5.添加事件:

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

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

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

typedef NS_OPTIONS(NSUInteger, UIControlEvents) {
    UIControlEventTouchDown                                         = 1 <<  0,      // on all touch downs, 按下按钮
    UIControlEventTouchDownRepeat                                   = 1 <<  1,      // on multiple touchdowns (tap count > 1),(单击不满足,快速                                                    点击两次调用一次方法,快速点击三次调用三次方法,n次调用n次方法)
    UIControlEventTouchDragInside                                   = 1 <<  2,    //在button内拖动时,不断调用方法.
    UIControlEventTouchDragOutside                                  = 1 <<  3,    //当从button内拖动到button外时,不断动用方法.(button内时不调用)
    UIControlEventTouchDragEnter                                    = 1 <<  4,    //从控件窗口之外拖动到内部时
    UIControlEventTouchDragExit                                     = 1 <<  5,    //从控件窗口内部拖动到外部时
    UIControlEventTouchUpInside                                     = 1 <<  6,      //单击,在按钮范围内松开
    UIControlEventTouchUpOutside                                    = 1 <<  7,    //单击,在按钮外面松开
    UIControlEventTouchCancel                                       = 1 <<  8,    //所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上                                                    锁或者电话呼叫打断。

    UIControlEventValueChanged                                      = 1 << 12,     // sliders, etc.当控件的值发生改变时,发送通知。用于滑块、分段控件                                                    、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放                                                    下时发送,或者在被拖动时发送。
    UIControlEventPrimaryActionTriggered NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 13,     // semantic action: for buttons, etc.

    UIControlEventEditingDidBegin                                   = 1 << 16,     // UITextField.当文本控件中开始编辑时发送通知
    UIControlEventEditingChanged                                    = 1 << 17,   // 当文本控件中的文本被改变时发送通知。
    UIControlEventEditingDidEnd                                     = 1 << 18,   // 当文本控件中编辑结束时发送通知。
    UIControlEventEditingDidEndOnExit                               = 1 << 19,     // ‘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.按钮实例

  1.有些时候我们想让UIButton的title居左对齐,我们设置 
  btn.textLabel.textAlignment = UITextAlignmentLeft

  是没有作用的,我们需要设置

  btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;

  但是问题又出来,此时文字会紧贴到左边框,我们可以设置

  btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);

  使文字距离左边框保持10个像素的距离。

时间: 2024-10-16 09:13:54

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

UIApplication常见属性与方法总结--ios

UIApplication 1.简介 1> 整个应用程序的象征,一个应用程序就一个UIApplication对象,使用了单例设计模式 2> 通过[UIApplication sharedApplication]访问这个单例对象 2.常见用法     1> 设置图标右上角的红色提示数字 app.applicationIconBadgeNumber = 10; 2> 设置状态栏的样式 app.statusBarStyle = UIStatusBarStyleBlackOpaque; 3

UIView的常见属性和方法

- (void)viewDidLoad { [super viewDidLoad]; // 临时View UIView *temp = [[UIView alloc] init]; temp.frame = CGRectMake(0, 0, 100, 100); [self.view addSubview:temp]; //UIView的常见属性 //1. 获得自己的父控件 [temp superview]; //2. 获得自己所有的子控件对象 [temp subviews]; //3. 控件的

UIView常见属性与方法

常见属性: @property(nonatomic,readonly) UIView    *superview; 获得自己的父控件对象 @property(nonatomic,readonly,copy) NSArray   *subviews; 获得自己的所有子控件对象 @property(nonatomic) NSInteger   tag; 控件的ID(标识),父控件可以通过tag来找到对应的子控件 @property(nonatomic) CGAffineTransform   tra

关于UIPickerView和UIDatePicker的一些常见属性及方法

一.UIPickerView1.UIPickerView的常见属性// 数据源(用来告诉UIPickerView有多少列多少行)@property(nonatomic,assign) id<UIPickerViewDataSource> dataSource;// 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择)@property(nonatomic,assign) id<UIPickerViewDelegate>   dele

UI基础UIView常见属性及方法

1.NSBundle 1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹 2> 利用mainBundle就可以访问软件资源包中的任何资源 3> 模拟器应用程序的安装路径 /Users/aplle/资源库/Application Support/iPhone Simulator/7.1/Applications 2.UIImageView和UIButton 1> 使用场合 * UIImageView: 如果仅仅是显示图片,不需要监听图片的点击 * UIB

NavigationItem常见属性及方法

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor whiteColor]; //设置标题文字 self.title = @"页面一"; self.navigationItem.title = @"页面一"; //back 为默认标题文字,默认文字不显示 //

UITextField常见属性及方法

/*************UITextField**************/ //实例化 UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 100, 280, 40)]; //相关属性 // textField.backgroundColor = [UIColor grayColor]; //边框状态:borderStyle /* 1.UITextBorderStyleRoundedRect

iOS开发UIScrollView常见属性和方法

一.ScrollView常用方法和属性 @property(nonatomic)CGPoint contentOffset; 设置滚动的偏移量 @property(nonatomic)CGSize contentSize; 设置滑动区域 @property(nonatomic,assign) id<UIScrollViewDelegate>      delegate; 设置UIScrollView的代理 @property(nonatomic,getter=isDirectionalLock

iOS webView的常见属性和方法

一.初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种: 第一种: - (void)loadRequest:(NSURLRequest *)request; 这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的,例如我加载百度的主页: ? 1 2 3     UIWebView * view = [[UIWebView alloc]initWit