我有一个小的UIButton并通过以下方式设置选择状态的背景:
[button setBackgroundImage:[UIImage imageNamed:@"butBG.png"] forState:UIControlStateSelected];
butBG.png imageSize > button.frame
。
我希望在UIButton.frame
时将[button setSelected:YES];
展开为等于imageSize
之后返回原点Frame [button setSelected:NO];
我该怎么做?感谢您的帮助!
答案 0 :(得分:3)
1)使用btn.isSelected
检查按钮单击时的按钮状态。
2)如果btn.isSelected
为真,则将按钮大小设置为与图像大小相似,否则设置正常状态下所需的按钮大小。
答案 1 :(得分:1)
您可以为按钮创建一个类别,并覆盖setSelected
方法以根据状态更改按钮的帧大小
答案 2 :(得分:1)
您可以聆听按钮的状态,并在更改时调整其大小
在viewDidLoad中(或使用界面构建器执行等效操作)
[button addTarget:self action:@selector(myButtonStateChanged:) forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@selector(myButtonStateChanged:) forControlEvents:(UIControlEventTouchUpInside | UIControlEventTouchUpOutside | UIControlEventTouchCancel)];
创建方法
- (IBAction)myButtonStateChanged:(UIButton *)sender {
if (sender.selected) {
sender.frame = BIG_SIZE_FRAME;
}
else {
sender.frame = NORMAL_SIZE_FRAME;
}
}
答案 3 :(得分:0)
-(void)setButtonframe:(UIButton *)button
{
if (button.selected)
{
[button setFrame:largeFrame];
}
else
{
[button setFrame:smallFrame];
}
}
呼叫 [self setButtonframe:sender]; 在按钮的操作中单击
答案 4 :(得分:0)
为此而去......
- (IBAction)paymentBtnCliked:(id)sender {
if ([sender isSelected]) {
// configure same object as per requirement
[paymentBtn setSelected:NO];
}else{
// configure same object as per requirement
[paymentBtn setSelected:YES];
}
}