如何使用自定义 UIButton 获得 UISegementedControl 功能?
Posted
技术标签:
【中文标题】如何使用自定义 UIButton 获得 UISegementedControl 功能?【英文标题】:How can I get UISegementedControl functionality with custom UIButtons? 【发布时间】:2014-04-24 17:40:14 【问题描述】:我创建了我自己的自定义过滤器视图,我希望它像 UISegmentedControl 一样工作。我已将其设置为视图,然后设置了 3 个 UIButton。我想知道如何做到这一点,以便在单击一个时取消选择其他两个,并对该按钮进行 api 调用,然后重新加载其下方的 UICollectionView。
这是我的视图图片,带有 3 个按钮,希望能更好地解释我正在尝试做的事情。
【问题讨论】:
到目前为止您尝试过什么?请分享一些代码。另外,为什么不按照 HIG 使用UISegmentedControl
?
我是 ios 新手,所以我问的更多是如何解决这个问题,而不是如何解决特定问题。我没有使用UISegmentedControl
,因为我不知道我可以让它看起来像上图,并且认为它的设计定制是有限的。
【参考方案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]; 等 正要写信问这个。谢谢。现在可以正常使用了。以上是关于如何使用自定义 UIButton 获得 UISegementedControl 功能?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITableViewCell 中使用自定义 UIButton?