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`的初始化有两种常见方式。一种是使用类方法`+buttonWithType:`,例如: ```swift UIButton *button1 = [UIButton ...
本篇文章将深入探讨`UIButton`的基本使用、关键属性以及如何进行适当的封装,以提高代码的可重用性和可维护性。 首先,我们来了解`UIButton`的基本使用。创建一个`UIButton`可以使用代码或者在Interface Builder中...
使用这个扩展,开发者可以简单地调用这些方法,为特定的UIButton实例添加或移除标签。例如: ```objc UIButton *myButton = [UIButton buttonWithType:UIButtonTypeSystem]; [myButton setTitle:@"点击我" forState...
苹果提供了多种方法来实现UIButton的图文混排,包括编程方式和使用Interface Builder(XIB)进行可视化设计。以下将详细讲解这两种方式: ### 编程方式 1. **设置Button的TitleEdgeInsets和ImageEdgeInsets**:...
在UIButton中添加泡泡效果通常涉及使用自定义视图或者CAShapeLayer来绘制。你可以创建一个UIView子类,重写`draw(_ rect: CGRect)`方法,使用`UIBezierPath`绘制气泡形状,并添加阴影效果。然后将这个自定义视图作为...
当我们只关心调整标题位置时,可以使用这个属性。与`contentEdgeInsets`类似,设置`titleEdgeInsets`也能影响标题相对于内容的位置。比如,`titleEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0)`会使标题向右移动20个...
3. 使用系统提供的枚举:UIButton的`titleEdgeInsets`和`imageEdgeInsets`属性可以接受UIEdgeInsets,通过调整这些边缘间距,可以实现元素的相对位置变化。 此外,可能还涉及到对按钮类型的选择,如`.custom`类型...
下面我们将深入探讨UIButton和UILabel的相关知识点。 **UIButton** 1. **类型**: UIButton有多种类型,包括`UIButtonTypeSystem`(默认类型)、`UIButtonTypeCustom`(自定义样式)、`...
这个“UIButton demo”是专为初学者设计的一个小型示例项目,旨在帮助开发者深入理解UIButton的各种属性及其用法。 首先,UIButton的核心属性包括: 1. `titleLabel`:显示在按钮上的文本标签,可以设置文字、字体...
例如,可以使用UIView的`animate(withDuration:animations:)`方法来实现平滑的旋转过渡。 总之,通过灵活运用Core Graphics和UIKit提供的功能,我们可以轻松地为UIButton和UILabel的文字添加旋转或倾斜效果,创造出...
除了基本的属性和方法,UIButton还有一些高级特性。例如,你可以通过`contentEdgeInsets`来调整按钮内容与边框之间的距离,通过`titleEdgeInsets`和`imageEdgeInsets`来控制文字和图像的位置。另外,`...
2. **扩展属性和方法**:自定义按钮可能包括设置不同状态下的图像、标题、颜色,以及调整布局属性(如内边距、边框宽度等)。我们可以通过扩展属性来实现这些功能,例如添加一个属性用于控制边框宽度,或者创建一个...
这些自定义的实现通常会覆盖或扩展`UIButton`的默认行为,通过重写`layoutSubviews()`、`draw(_ rect: CGRect)`等方法,或者使用Swift的`extension`来增加新属性和方法。 例如,可能会有一个`BAAnimatedButton`类,...
在使用ColorButton时,开发者可以通过设置相关的属性来调整按钮的渐变效果。例如,可以设置开始颜色和结束颜色,以控制按钮颜色变化的范围;设置渐变方向,改变颜色流动的方向;还可以通过动画控制颜色变化的速度和...
下面将详细解释其主要实现原理和使用方法。 首先,DFCountDownButton的核心是继承自UIButton,这样可以直接利用UIButton的所有功能,并在其基础上添加新的特性。在Swift中,继承是一种多态性表现,通过继承,...
本项目“UIButton-demo.zip”重点展示了在Swift编程语言环境下对UIButton的常见使用方法,以及如何在结合RxSwift和MVVM设计模式的场景下进行有效利用。 首先,Swift中的UIButton提供了多种创建和配置按钮的方法。你...
接着,我们使用`setImage:forState:`方法设置按钮的图片,这里用到了`UIImage imageNamed:`来加载图片资源。`setTitle:forState:`方法则用来设置按钮的文字内容。为了实现图片在左边,文字在右边的效果,我们利用了`...
在这个项目"ios-一句代码设置UIButton的image和title的左右上下布局以及image和title的间距"中,作者Coder-ZJ提供了一个简洁的解决方案,通过一个简单的调用来调整这些属性。 在UIButton的默认设置下,image和title...
Swift 5.0对这个类的使用方式并没有大的改变,但理解其基本属性和方法是关键。 1. 创建UIButton: - 使用代码创建:你可以通过`UIButton(type:)`初始化方法创建不同类型的按钮,如`.system`(默认样式)、`.custom...