【问题标题】:How can I get UISegementedControl functionality with custom UIButtons?如何使用自定义 UIButton 获得 UISegementedControl 功能?
【发布时间】:2014-04-24 17:40:14
【问题描述】:

我创建了我自己的自定义过滤器视图,我希望它像 UISegmentedControl 一样工作。我已将其设置为视图,然后设置了 3 个 UIButton。我想知道如何做到这一点,以便在单击一个时取消选择其他两个,并对该按钮进行 api 调用,然后重新加载其下方的 UICollectionView。

这是我的视图图片,带有 3 个按钮,希望能更好地解释我正在尝试做的事情。

【问题讨论】:

  • 到目前为止您尝试过什么?请分享一些代码。另外,为什么不按照 HIG 使用 UISegmentedControl?
  • 我是 iOS 新手,所以我问的更多是如何解决这个问题,而不是如何解决特定问题。我没有使用UISegmentedControl,因为我不知道我可以让它看起来像上图,并且认为它的设计定制是有限的。

标签: ios uibutton


【解决方案1】:

将所有按钮连接到此IBAction 并为每个按钮定义标签。

- (IBAction)pressButton:(id)sender {

    UIButton* button1 = (UIButton*)[self.view viewWithTag:99];
    UIButton* button2 = (UIButton*)[self.view viewWithTag:100];
    UIButton* button3 = (UIButton*)[self.view viewWithTag:101];

    [button1 setEnabled:NO];
    [button2 setEnabled:NO];
    [button3 setEnabled:NO];

    [button1 setSelected:NO];
    [button2 setSelected:NO];
    [button3 setSelected:NO];

    if([sender tag]==99){
        [button1 setSelected:YES];
        [button1 setEnabled:YES];
    }else if([sender tag]==100){
        [button2 setSelected:YES];
        [button2 setEnabled:YES];
    }else{
        [button3 setSelected:YES];
        [button3 setEnabled:YES];
    }

}

【讨论】:

  • 感谢我正在寻找的东西。
  • SetEnabled 必须反转:[button1 setEnabled:YES]; [button2 setEnabled:YES]; [button3 setEnabled:YES];
  • if([发件人标签]==99){ [button1 setSelected:YES]; [button1 setEnabled:NO]; } 等
  • 正要写信问这个。谢谢。现在可以正常使用了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
相关资源
最近更新 更多