UIButton

一、按钮上是文字

1.初始化, 由于UIButton 有自己的初始化方式,所以用自己的
UIButton *button=[UIButton buttonWithType:UIButtonTypeSystem];
(后面的按钮类型是这个按钮的样子,有如下按钮类型)
// UIButtonTypeDetailDisclosure, //文字前面有圆圈,圆圈里面有i的按钮
// UIButtonTypeInfoLight, //文字前面有圆圈,圆圈里面有i的按钮
// UIButtonTypeInfoDark, //文字前面有圆圈,圆圈里面有i的按钮
// UIButtonTypeContactAdd, //文字前面有圆圈,圆圈里面有+的按钮
2.为按钮设置标题
[button setTitle:@"点我" forState:UIControlStateNormal];
(后面的是按钮的上标题的一些规定)
// UIControlStateNormal 常态 //一般模式的标题规定
// UIControlStateHighlighted 高亮 //当点击按钮时,并且不放,此标题才会显示出来
// UIControlStateDisabled //已经被禁止使用
// UIControlStateSelected 被选中 //是个BOOL类型,默认是NO, 是按钮的属性eg:
button.selected=!button.selected; 和此按钮的方法配合
使用,类似手机上的收藏键(文字四周还有框)
3.设置按钮背景颜色 就是程序运行后按钮的背景色
[button setBackgroundColor: [UIColor redColor]];
4.修改按钮上 标题的字体颜色 (默认黑色)
[button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
后面用selected指的是按钮被点击后 被选择标题的颜色
[button setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];
下面的方法改变了工程运行后出来的按钮上的字体颜色和点击按钮后被选中的字体的背景(不是整个
按钮的背景),如果单独设置工程运行后出来的按钮上的字体的颜色,则此字体用该颜色
[button setTintColor: [UIColor redColor] ];
5.修改按钮上字体的大小
button.titleLable.font=[UIFont systemFontOfSize:20 ];

6.为按钮添加点击事件
[button addTarget: self anction: @selector(btnAction:) forControlEvents: UIControlEventTouchUpInside];
//Target:动作的执行目标,方法的执行体(就是按钮的action事件写在那个类里面)
//target-action 目标动作机制
//action:按钮的回调方法,如果方法有参数,那么这个参数一定是按钮本身,方法没有参数也可以(没有参数时可以不用写冒号)
//events:那种触摸方式会触发按钮的回调方法

下面是几种触摸方式
// UIControlEventTouchDragInside 点击不松手轻轻移动触发
// UIControlEventTouchDragOutside 点击不松手,向其他位置拖触发
// UIControlEventTouchDragEnter
// UIControlEventTouchDragExit
// UIControlEventTouchUpInside 单击:手指按下去,再松手的时候触发的(最常用点击方式)
// UIControlEventTouchUpOutside
// UIControlEventTouchCancel
// UIControlEventTouchDown 按钮点下去之后就会出触发方法,不等松手
// UIControlEventTouchDownRepeat 连击两下触发
7.按钮被点击后的触发事件 选中与被选中之间的切换
//按钮的回调方法,此方法就是触发该方法的按钮
-(void)btnAction:(UIButton *)sender
{
sender.selected=!sender.selected;
}

二、按钮上是图片

1.初始化 Custom是自定义的意思
UIButton *button=[UIButton buttonWithType: UIButtonTypeCustom];
2.为按钮添加图片
[button setImage:[UIImage imageNamed: @"shipping.jpg"]
forState:UIControlStateNormal ];
3.设置回调方法
[button addTarget: self action:@selector(customAction:) forControlEvents:
UIControlEventTouchUpInside ];
4.将按钮添加到父视图上
[self.window addSubview:button];
5.给高亮状态下托进一张图片
[button setImage:[UIImage imageNamed:@"勇者.png"] forState:UIControlStateHighlighted];
6.定义一个得到按钮的图片并显示在UIImageView上 如果图片是常态下地就装换成高亮成高亮状态
下,如果是高亮状态下地图片,就转换为常态下的图片
UIImageView *btnImageView=[[UIImageView alloc]initWithFrame:CGRectMake(100,100, 100,
100)];
btnImageView.tag=1000;
btnImageView.center=self.window.center;
[self.window addSubview:btnImageView];
7.获取常态button上的图片
[button imageForState:UIControlStateNormal];
8.获取常态button上的文字
[button titleForState:UIControlStateNormal];
9.button被点击
button.selected==YES;
10.返回上一界面
-(void)cancelAction:(UIButton *)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}

11.方法实现
-(void)customBtnAction:(UIButton *)sender
{
NSLog(@"这是自定义按钮的回调方法");
//得到按钮的图片并显示在UIImageView上 如果图片是常态下地就装换成高亮成高亮状态下,如果是高亮状态下地图片,就转换为常态下的图片
UIImageView *imageView=(UIImageView *)[self.window viewWithTag:1000];
imageView.center=CGPointMake(self.window.center.x, 100);
//button获取它上面的图片
UIImage *btnImage=[sender imageForState:UIControlStateNormal];
imageView.image=btnImage;
//判断:按钮的状态是常态,还是高亮
if(sender.selected==YES)
{
sender.selected=NO;
UIImage *btnImage=[sender imageForState:UIControlStateNormal];
imageView.image=btnImage;
}
else
{
sender.selected=YES;
UIImage *btnImage=[sender imageForState:UIControlStateHighlighted];
imageView.image=btnImage;
}
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • pragma mark UIButton 按钮 UIButtonTypeSystem方式的 // 创建Bu...
    向日葵_wwx阅读 4,221评论 0 0
  • 一个UIButton的实例变量, 使一个按钮(button)在触摸屏上生效。一个按钮监听触摸事件,当被点击时,给目...
    wushuputi阅读 5,470评论 0 1
  • UIButton创建 基础使用 添加事件给button添加事件 保持高亮状态有一些情景,我们需要保持Button的...
    degulade阅读 2,854评论 0 0
  • @ResponseBody 将内容或对象作为 HTTP 响应正文返回,使用@ResponseBody将会跳过视图处...
    刘刘刘刘刘刘庆文阅读 3,392评论 0 0
  • 其实想要重拾起写日记的习惯已经有段时间了,只是现在越来越眼高手低,以至于迟迟至今。先试试这个平台的感觉,太久不写了...
    是夜无眠阅读 1,625评论 0 0

友情链接更多精彩内容