这里是按钮常用的一些方法
自己做记录用查找起来方便
//1.创建UIButton(注意用的不是alloc init方法 而是便利构造器初始化) 并且将按钮添加到view上
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
//初始化按钮的类型
/*
UIButtonTypeCustom = 0, // 自定义类型
UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0), // 系统默认的类型 此类型 设置了图片也会是蓝色的
UIButtonTypeDetailDisclosure, // 详细描述样式,圆圈加一个i(蓝色小箭头按钮)
UIButtonTypeInfoLight, // 浅色的详细描述样式(亮色感叹号)
UIButtonTypeInfoDark, // 深色的详细描述样式(暗色感叹号)
UIButtonTypeContactAdd, // 加号样式
UIButtonTypePlain API_AVAILABLE(tvos(11.0)) API_UNAVAILABLE(ios, watchos), // standard system button without the blurred background view
UIButtonTypeRoundedRect = UIButtonTypeSystem // 圆角矩形
*/
btn.frame = CGRectMake(100, 100, 300, 100);
[self.view addSubview:btn];
//2.给btn设置文字标题
[btn setTitle:@"这是按钮" forState:UIControlStateNormal];
/*
UIControlStateNormal = 0, // 正常状态
UIControlStateHighlighted = 1 << 0, // 高亮状态,按钮摁下没有抬起来
UIControlStateDisabled = 1 << 1, // 按钮禁用状态下,不能用
UIControlStateSelected = 1 << 2, // 选中状态下
UIControlStateFocused NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 3, //
UIControlStateApplication = 0x00FF0000, // 应用程序标志时
UIControlStateReserved = 0xFF000000 // 为内部框架预留
*/
//3设置btn的文字颜色
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
//4.设置btn文字的字体大小
btn.titleLabel.font = [UIFont systemFontOfSize:22];
//5.设置btn背景图片 设置图片 获取指定状态下的背景图片
// [btn setBackgroundImage:[UIImage imageNamed:@"btn.png"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"btn.png"] forState:UIControlStateNormal];
UIImage *img = [btn imageForState:UIControlStateNormal];
//6.设置btn的背景颜色
btn.backgroundColor = [UIColor greenColor];
//7.设置btn文字阴影颜色
[btn setTitleShadowColor:[UIColor blueColor] forState:UIControlStateNormal];
btn.titleLabel.shadowOffset = CGSizeMake(1, 1);
//8.设置btn的adjustsImageWhenHighlighted 默认情况下,按钮被禁用时,图像会被花的颜色深,禁用此功能,可将这个属性设置为NO
btn.adjustsImageWhenHighlighted = NO;
//9.设置btn的adjustsImageWhenDisabled 默认情况下,按钮被禁用时,图像会被花的颜色淡一些,禁用此功能,可将这个属性设置为NO
btn.adjustsImageWhenDisabled = YES;
//10.设置btn的showsTouchWhenHighlighted为yes时按钮摁下会发光,
btn.showsTouchWhenHighlighted = YES;
//11.水平文字对齐-居左或者居右
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
/*
UIControlContentHorizontalAlignmentCenter = 0,
UIControlContentHorizontalAlignmentLeft = 1,
UIControlContentHorizontalAlignmentRight = 2,
UIControlContentHorizontalAlignmentFill = 3,
UIControlContentHorizontalAlignmentLeading API_AVAILABLE(ios(11.0), tvos(11.0)) = 4,
UIControlContentHorizontalAlignmentTrailing API_AVAILABLE(ios(11.0), tvos(11.0)) = 5,
*/
//12.垂直对齐方式
btn.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;
//13.内部内容边距
btn.contentEdgeInsets = UIEdgeInsetsMake(10, 20, 30, 40);
//14.文字内在距离
btn.titleEdgeInsets = UIEdgeInsetsMake(10, 20, 30, 0);
/*
//button 一些其他属性
@property(nonatomic) UIEdgeInsets contentEdgeInsets; 内容内距离
@property(nonatomic) UIEdgeInsets titleEdgeInsets; 标题内距离
@property(nonatomic) BOOL reversesTitleShadowWhenHighlighted; 标题的阴影改变时,按钮是否高亮显示。默认为NO
@property(nonatomic) UIEdgeInsets imageEdgeInsets; 图片内边距
@property(nonatomic) BOOL adjustsImageWhenHighlighted;按钮高亮的情况下,图像的颜色是否要加深一点。默认是YES
@property(nonatomic) BOOL adjustsImageWhenDisabled; 按钮禁用的情况下,图像的颜色是否要加深一点。默认是YES
@property(nonatomic) BOOL showsTouchWhenHighlighted; 按下按钮是否会发光 默认是NO
@property(nonatomic,readonly) UIButtonType buttonType; button的类型
*/
//btn的点击事件,常用的方法:第一个参数是目标对象,一般是self; 第二个参数是SEL类型方法; 第三个参数是按钮的点击事件
[btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
/*
枚举值:
UIControlEventTouchDown // 单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。
UIControlEventTouchDownRepeat // 多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。
UIControlEventTouchDragInside // 当一次触摸在控件窗口内拖动时。
UIControlEventTouchDragOutside // 当一次触摸在控件窗口之外拖动时。
UIControlEventTouchDragEnter // 当一次触摸从控件窗口之外拖动到内部时
UIControlEventTouchDragExit // 当一次触摸从控件窗口内部拖动到外部时。
UIControlEventTouchUpInside // 所有在控件之内触摸抬起事件
UIControlEventTouchUpOutside // 所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。
UIControlEventTouchCancel // 所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。
UIControlEventValueChanged // 当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。
UIControlEventEditingDidBegin // 当文本控件中开始编辑时发送通知
UIControlEventEditingChanged // 当文本控件中的文本被改变时发送通知。
UIControlEventEditingDidEnd // 当文本控件中编辑结束时发送通知。
UIControlEventEditingDidEndOnExit // 当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。
UIControlEventAllTouchEvents // 通知所有触摸事件。
UIControlEventAllEditingEvents // 通知所有关于文本编辑的事件。
UIControlEventApplicationReserved // range available for application use
UIControlEventSystemReserved // range reserved for internal framework use
UIControlEventAllEvents // 通知所有事件
*/
//可能会用到的方法
/*
设置btn 某个状态下的富文本标题
- (void)setAttributedTitle:(nullable NSAttributedString *)title forState:(UIControlState)state NS_AVAILABLE_IOS(6_0); // default is nil. title is assumed to be single line
返回btn 某个状态下的标题
- (nullable NSString *)titleForState:(UIControlState)state;
返回btn 某个状态下的标题颜色
- (nullable UIColor *)titleColorForState:(UIControlState)state;
返回btn 某个状态下的阴影标题颜色
- (nullable UIColor *)titleShadowColorForState:(UIControlState)state;
返回btn 某个状态下的图片
- (nullable UIImage *)imageForState:(UIControlState)state;
返回btn 某个状态下的背景图片
- (nullable UIImage *)backgroundImageForState:(UIControlState)state;
返回btn 某个状态下的富文本标题
- (nullable NSAttributedString *)attributedTitleForState:(UIControlState)state NS_AVAILABLE_IOS(6_0);
*/
如果有错误请大家帮忙更正
网友评论