iOS中按钮的学习,UIButton。
<span style="font-size:18px;"> //OS中按钮的学习,UIButton。使用自己的初始化方法。
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];</span>
设置标题:
<span style="font-size:18px;">//为按钮设置标题
[btn setTitle:@"点我啊" forState:UIControlStateNormal];</span>
设置大小,并添加视图:
//设置大小
[btn setFrame:CGRectMake(100, 100, 100, 30)];
[self.window addSubview:btn];
为按钮添加点击事件:
//为按钮添加点击事件 target-action 目标动作机制
/*
*target:目标,方法的执行体。
*action:按钮的回调方法,如果方法有参数,那么这个参数一定是按钮本身。方法没有参数也可以。
*events:哪种触摸方式会触发按钮的回调方法。
*/
//self。如果写在对象方法中,即-方法,self就代表类对象,如果写在类方法中,也就是oc的加号方法中,self就代表本类。
<pre name="code" class="objc">[btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
btnAction方法的定义,写在本类文件里。
注意:在这里虽然是button在调用,但是self在类方法里指的是本类的对象。
- (void)btnAction:(UIButton*)sender{
// 调试语句
NSLog(@"sb");
// 点击按钮,改变按钮的标题
[sender setTitle:@"点你大爷" forState:UIControlStateNormal];
//点击按钮随机给背景换颜色
[self.window setBackgroundColor:[UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0 blue:arc4random()%255/255.0 alpha:1.0]];
这个时候如果是Xcode7以下的版本,可以点击给背景换颜色了。
7以上的版本还需要再加一句。
[self.window bringSubviewToFront:btn];
因为7以上的版本可能被
其他方法:
//设置高亮标题
[btn setTitle:@"高亮" forState:UIControlStateHighlighted];
几种常用的点击方式:
// UIControlEventTouchDragInside 点击后在内部滑动,距离一定时触发
// UIControlEventTouchDragOutside 点击后在外部滑动,足够远触发
<p class="p1"><span class="s1">// UIControlEventTouchUpInside </span><span class="s2">单击(手指按下离开的时候触发)最常用的点击方式</span></p><p class="p1"><span class="s1">// UIControlEventTouchDown </span><span class="s2">单击</span><span class="s1"> </span><span class="s2">(手指按下即触发)</span></p>
[btn setTitle:@"选中" forState:UIControlStateSelected];
//选中状态需要配合selected来使用。
if(sender.selected == YES)
{
sender.selected = NO;
}else{
sender.selected = YES;
};
上述代码在点击的回调方法中实现。
custom类型的button:
//custom类型的button
//初始化一个button
UIButton *myBtn = [UIButton buttonWithType:UIButtonTypeCustom];
//添加图片给按钮
UIImage *image = [UIImage imageNamed:@"321.jpg"];
[myBtn setImage:image forState:UIControlStateNormal];
//设置按钮的frame
[myBtn setFrame:CGRectMake(0, 0, 375, 500)];
//设置按钮的回调方法
[myBtn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
//将按钮添加到父视图上面去
[self.window addSubview:myBtn];
custom可以设置图片给按钮。
获取某个状态下的图片。
//获取某个状态下的图片
[myBtn imageForState:UIControlStateHighlighted];