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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容

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