gpt4 book ai didi

ios - 从 UIButton 按下处理程序获取关联 UIView 的最简洁方法

转载 作者:行者123 更新时间:2023-11-29 10:28:58 26 4
gpt4 key购买 nike

在我的应用程序中,我有三个 UIButton,每个都有一个关联的 UIView。当按下其中一个按钮时,我想:

  1. 突出显示按下的按钮
  2. 取消突出显示其他按钮
  3. 隐藏与其他按钮关联的 UIViews
  4. 取消隐藏与按下的按钮关联的 UIView

我的解决方案(如下)有效而且并不可怕,但我忍不住认为有一种更清洁、更高效的方法。有什么建议吗?

-(IBAction)buttonPressed:(id)sender {

NSArray *buttonArray = [NSArray arrayWithObjects:button1, button2, button3, nil];

NSDictionary* buttonViewDict = @{button1.titleLabel.text : view1,
button2.titleLabel.text : view2,
button3.titleLabel.text : view3};

for (UIButton* button in buttonArray) {
[button setHighlighted:[button isEqual:sender]];
[((UIView*)[buttonViewDict objectForKey:button.titleLabel.text]) setHidden:![button isEqual:sender]];
}
}

最佳答案

您可以使用 tag 属性来标识您的按钮和 View 。

在 Interface Builder 或 -viewDidLoad 中设置标签值,然后使用标签值来识别哪个按钮被按下:

- (IBAction)buttonPressed:(UIButton*)sender {
for (UIButton* button in _buttons) {
button.highlighted = button.tag == sender.tag;
}
for (UIView* view in _views) {
view.hidden = view.tag != sender.tag;
}
}

关于ios - 从 UIButton 按下处理程序获取关联 UIView 的最简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30653098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com