使用UIButtons复制UISegmentedControl - iPhone

时间:2010-04-22 13:00:22

标签: iphone objective-c xcode uibutton uisegmentedcontrol

我不喜欢UISegmentedControl的风格,因此我试图改变它的外观,但我无法将图像附加到其按钮上。我根本没有改变。

现在我正在研究如何使用4个UIButton复制该功能。

我在界面构建器中设置了4个UIButton,为它们添加了不同的标签号。

我无法完成的是当点击按钮时,它应该被“选中”而其他按钮应该被取消选择。

我如何连接所有这些?

如果有办法改变UISegmented控件的外观,我需要所有这些努力。

感谢帮助人员

这适用于iPhone OS

1 个答案:

答案 0 :(得分:3)

使用4个按钮,关闭所有其他按钮并不困难。以下是一些可以帮助您入门的代码:

- (void)buttonPressed:(NSInteger)activeButtonIndex {
    for (int i = 0; i < [buttons count]; i++) {
        MYButton *button = [buttons objectAtIndex:i];
        if (i == activeButtonIndex) {
            [button setDepressed:YES];
        } else {
            [button setDepressed:NO];
        }
    }
}
- (void)button1Pressed:(id)sender { [self buttonPressed:1]; }
- (void)button2Pressed:(id)sender { [self buttonPressed:2]; }
- (void)button3Pressed:(id)sender { [self buttonPressed:3]; }
- (void)button4Pressed:(id)sender { [self buttonPressed:4]; }

需要注意的重要设置:

  1. 您需要将您的uibutton子类化,使其具有depressed状态。这样,如果选择了某个项目,您只需更换按钮的图像或背景,使其看起来很凹陷。
  2. buttons是一个用这个子类化的uibutton对象填充的数组。您可以在viewDidLoad;
  3. 中进行设置