`
_wyh
  • 浏览: 61177 次
社区版块
存档分类
最新评论

UIButton用法及相关属性

    博客分类:
  • ios
ios 
阅读更多

1,UIButton初始化

 

         (1)initWithFrame

                 UIButton *btn = [ [UIButton alloc] initWithFrame:CGRectMake(10, 20, 30, 10)];

           (2)initWithType

                 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

                

                能定义的button类型:

               

                typedef enum {

                        UIButtonTypeCustom = 0,          自定义风格    最常用

                        UIButtonTypeRoundedRect,         圆角矩形 

                        UIButtonTypeDetailDisclosure,    蓝色小箭头按钮,主要做详细说明用

                        UIButtonTypeInfoLight,           亮色感叹号

                        UIButtonTypeInfoDark,            暗色感叹号

                        UIButtonTypeContactAdd,          十字加号按钮

                 } UIButtonType;

 

2,UIButton常用方法 

           //设置button在view上的位置

           btn.frame = CGRectMake(20, 30, 300, 30);

           

           //设置button背景色

           btn.backgroundColor = [UIColor redColor];

 

           //设置button填充图片

           [btn setImage: [UIImage imageNamed : @“Com.png”] forState: UIControlStateNormal];

 

           //设置button标题

            [btn setTitle: @“Title” forState: UIControlStateNormal];    //按钮默认的文本

            [btn1 setTitle:@"我被点了!" forState:UIControlStateHighlighted];     //点击时的文本

 

            //添加按钮事件

             [btn addTarget: self action: @selector(btnClick) forControlEvents: UIControlEventTouchUpInside];  //事件方法名字是btnClick

 

            //点击时按钮发光,就是在按钮中间发亮光

              btn1.showsTouchWhenHighlighted=YES;

 

3, forState

          作用: 定义按钮的文字或图片在何种状态下才会显现

       enum {

            UIControlStateNormal       = 0,         常规状态显现              

            UIControlStateHighlighted  = 1 << 0,    高亮状态显现    

            UIControlStateDisabled     = 1 << 1,    禁用的状态才会显现

            UIControlStateSelected     = 1 << 2,    选中状态              

            UIControlStateApplication  = 0x00FF0000, 当应用程序标志时            

            UIControlStateReserved     = 0xFF000000  为内部框架预留,可以不管他             

       };

 

4,forControlEvents

          作用: 设置触发方式

       

       typedef NS_OPTIONS(NSUInteger, UIControlEvents) {

           

             UIControlEventTouchDown           = 1 <<  0,      // 指鼠标左键按下(注:只是“按下”)的动作      

                                                                    

             UIControlEventTouchDownRepeat     = 1 <<  1,      // 指鼠标左键连续多次重复按下(注:只是“按下”)                                                                                     的动作,比如,鼠标连续双击、三击、……、多次连击。

                                                                                                 说明:多次重复按下时,事件序列是这样的:

                                                                                                         UIControlEventTouchDown ->

                                                                                                             UIControlEventTouchUpInside -> 

                                                                                                        UIControlEventTouchDown -> 

                                                                                                        UIControlEventTouchDownRepeat -> 

                                                                                                        UIControlEventTouchUpInside -> 

                                                                                                         UIControlEventTouchDown -> 

                                                                                                        UIControlEventTouchDownRepeat -> 

                                                                                                        UIControlEventTouchUpInside ->

                                                                                                        ......

                                                                                            除了第一次按下外,后面每次摁下都是一个                                                                                                            UIControlEventTouchDown事件,然后紧跟一个                                                                                                    UIControlEventTouchDownRepeat事件。

 

             UIControlEventTouchDragInside     = 1 <<  2,    // 指按下鼠标,然后在控件边界范围内拖动。

 

             UIControlEventTouchDragOutside    = 1 <<  3,     // 与UIControlEventTouchDragInside不同的是,拖动                                                                                                时,鼠标位于控件边界范围之外。但首先得有个                                                                                                    UIControlEventTouchDown事件,然后接一个                                                                                                        UIControlEventTouchDragInside事件,再接一个                                                                                                    UIControlEventTouchDragExit事件,这时,鼠标已                                                                                                经位于控件外了,继续拖动就是                                                                                                                              UIControlEventTouchDragOutside事件了。

 

             UIControlEventTouchDragEnter      = 1 <<  4,    // 指拖动动作中,从控件边界外到内时产生的事件。

 

             UIControlEventTouchDragExit       = 1 <<  5,       //指拖动动作中,从控件边界内到外时产生的事件。

 

             UIControlEventTouchUpInside       = 1 <<  6,     //指鼠标在控件范围内抬起,前提先得按下,即                                                                                                              UIControlEventTouchDown或                                                                                                                                  UIControlEventTouchDownRepeat事件。

 

             UIControlEventTouchUpOutside      = 1 <<  7,  //指鼠标在控件边界范围外抬起,前提先得按下,然后拖                                                                                          动到控件外,即 

                                                                                    UIControlEventTouchDown -> 

                                                                                       UIControlEventTouchDragInside(n 个) -> 

                                                                                         UIControlEventTouchDragExit -> 

                                                                                    UIControlEventTouchDragOutside(n 个) 

                                                                                    时间序列,再然后就是抬起鼠标,产生                                                                                                                  UIControlEventTouchUpOutside事件。

 

              UIControlEventTouchCancel         = 1 <<  8,        //所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。

 

              UIControlEventValueChanged        = 1 << 12,     // sliders, 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

         };

 

 

 

分享到:
评论

相关推荐

    UIButton使用方法汇总

    在这个“UIButton使用方法汇总”中,我们将深入探讨其核心特性和用法。 首先,`UIButton`的初始化有两种常见方式。一种是使用类方法`+buttonWithType:`,例如: ```swift UIButton *button1 = [UIButton ...

    uibutton的使用

    本篇文章将深入探讨`UIButton`的基本使用、关键属性以及如何进行适当的封装,以提高代码的可重用性和可维护性。 首先,我们来了解`UIButton`的基本使用。创建一个`UIButton`可以使用代码或者在Interface Builder中...

    UIButton+Badge.zip

    使用这个扩展,开发者可以简单地调用这些方法,为特定的UIButton实例添加或移除标签。例如: ```objc UIButton *myButton = [UIButton buttonWithType:UIButtonTypeSystem]; [myButton setTitle:@"点击我" forState...

    UIButton 的图文混排

    苹果提供了多种方法来实现UIButton的图文混排,包括编程方式和使用Interface Builder(XIB)进行可视化设计。以下将详细讲解这两种方式: ### 编程方式 1. **设置Button的TitleEdgeInsets和ImageEdgeInsets**:...

    自定义UIButton 可任意调整图片对齐类型 和显示位置

    在UIButton中添加泡泡效果通常涉及使用自定义视图或者CAShapeLayer来绘制。你可以创建一个UIView子类,重写`draw(_ rect: CGRect)`方法,使用`UIBezierPath`绘制气泡形状,并添加阴影效果。然后将这个自定义视图作为...

    详解iOS中UIButton的三大UIEdgeInsets属性用法

    当我们只关心调整标题位置时,可以使用这个属性。与`contentEdgeInsets`类似,设置`titleEdgeInsets`也能影响标题相对于内容的位置。比如,`titleEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0)`会使标题向右移动20个...

    ios-布局UIButton中TitleLabel和ImageView位置.zip

    3. 使用系统提供的枚举:UIButton的`titleEdgeInsets`和`imageEdgeInsets`属性可以接受UIEdgeInsets,通过调整这些边缘间距,可以实现元素的相对位置变化。 此外,可能还涉及到对按钮类型的选择,如`.custom`类型...

    UIbutton培训学习代码

    下面我们将深入探讨UIButton和UILabel的相关知识点。 **UIButton** 1. **类型**: UIButton有多种类型,包括`UIButtonTypeSystem`(默认类型)、`UIButtonTypeCustom`(自定义样式)、`...

    UIButton demo

    这个“UIButton demo”是专为初学者设计的一个小型示例项目,旨在帮助开发者深入理解UIButton的各种属性及其用法。 首先,UIButton的核心属性包括: 1. `titleLabel`:显示在按钮上的文本标签,可以设置文字、字体...

    UIButton,UILabel文字旋转(倾斜)

    例如,可以使用UIView的`animate(withDuration:animations:)`方法来实现平滑的旋转过渡。 总之,通过灵活运用Core Graphics和UIKit提供的功能,我们可以轻松地为UIButton和UILabel的文字添加旋转或倾斜效果,创造出...

    iphone 开发基础控件UIButton

    除了基本的属性和方法,UIButton还有一些高级特性。例如,你可以通过`contentEdgeInsets`来调整按钮内容与边框之间的距离,通过`titleEdgeInsets`和`imageEdgeInsets`来控制文字和图像的位置。另外,`...

    swift-FSCustomButtonDemo一个高度自定义UIButton控件

    2. **扩展属性和方法**:自定义按钮可能包括设置不同状态下的图像、标题、颜色,以及调整布局属性(如内边距、边框宽度等)。我们可以通过扩展属性来实现这些功能,例如添加一个属性用于控制边框宽度,或者创建一个...

    ios 自定义uibutton

    这些自定义的实现通常会覆盖或扩展`UIButton`的默认行为,通过重写`layoutSubviews()`、`draw(_ rect: CGRect)`等方法,或者使用Swift的`extension`来增加新属性和方法。 例如,可能会有一个`BAAnimatedButton`类,...

    变色UIButton类库 ColorButton

    在使用ColorButton时,开发者可以通过设置相关的属性来调整按钮的渐变效果。例如,可以设置开始颜色和结束颜色,以控制按钮颜色变化的范围;设置渐变方向,改变颜色流动的方向;还可以通过动画控制颜色变化的速度和...

    swift-DFCountDownButton继承UIButton实现IOS倒计时按钮

    下面将详细解释其主要实现原理和使用方法。 首先,DFCountDownButton的核心是继承自UIButton,这样可以直接利用UIButton的所有功能,并在其基础上添加新的特性。在Swift中,继承是一种多态性表现,通过继承,...

    UIButton-demo.zip

    本项目“UIButton-demo.zip”重点展示了在Swift编程语言环境下对UIButton的常见使用方法,以及如何在结合RxSwift和MVVM设计模式的场景下进行有效利用。 首先,Swift中的UIButton提供了多种创建和配置按钮的方法。你...

    IOS开发UIButton(左边图片右边文字效果)

    接着,我们使用`setImage:forState:`方法设置按钮的图片,这里用到了`UIImage imageNamed:`来加载图片资源。`setTitle:forState:`方法则用来设置按钮的文字内容。为了实现图片在左边,文字在右边的效果,我们利用了`...

    ios-一句代码设置UIButton的image和title的左右上下布局以及image和title的间距.zip

    在这个项目"ios-一句代码设置UIButton的image和title的左右上下布局以及image和title的间距"中,作者Coder-ZJ提供了一个简洁的解决方案,通过一个简单的调用来调整这些属性。 在UIButton的默认设置下,image和title...

    swift5.0 UIButton基础使用

    Swift 5.0对这个类的使用方式并没有大的改变,但理解其基本属性和方法是关键。 1. 创建UIButton: - 使用代码创建:你可以通过`UIButton(type:)`初始化方法创建不同类型的按钮,如`.system`(默认样式)、`.custom...

Global site tag (gtag.js) - Google Analytics