0

我有一个小的 UIButton 并通过以下方式为选择状态设置背景:

[button setBackgroundImage:[UIImage imageNamed:@"butBG.png"] forState:UIControlStateSelected];

butBG.png imageSize > button.frame. 而我想扩大UIButton.frame等于 imageSize 的时候[button setSelected:YES]; 之后回到原点 Frame 的时候[button setSelected:NO];

我怎样才能做到这一点?提前感谢您的帮助!

4

5 回答 5

3

1) 使用 . 检查按钮单击时的按钮状态btn.isSelected

2)如果btn.isSelected为真,则设置与图像大小相似的按钮大小,否则设置正常状态下所需的按钮大小。

于 2013-03-06T09:08:01.673 回答
1

您可以为按钮创建一个类别并覆盖该setSelected方法以根据状态更改按钮的框架大小

于 2013-03-06T09:09:27.573 回答
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;
  }

}
于 2013-03-06T09:12:35.253 回答
0
-(void)setButtonframe:(UIButton *)button
{
    if (button.selected)
    {
        [button setFrame:largeFrame];

    }
    else
    {
        [button setFrame:smallFrame];

    }
}

调用 [self setButtonframe:sender]; 在按钮点击的动作中

于 2013-03-06T09:13:46.610 回答
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];

}
}
于 2013-03-06T09:35:41.890 回答