gpt4 book ai didi

ios - 将复选标记添加到类似于 Airplay 操作表的 UIActionSheet 按钮

转载 作者:可可西里 更新时间:2023-11-01 05:45:25 25 4
gpt4 key购买 nike

我想弄清楚如何在 UIActionSheet 中的按钮右侧添加复选标记。

我想模仿 AirPlay 操作表中的复选标记。根据我的阅读,自定义这些按钮意味着访问 Apple 的私有(private) API 并使您面临被 App Store 拒绝的风险。

有没有安全的方法来添加这个复选标记?

最佳答案

这个方法怎么样?

在按钮内放置一个带有“勾号”的标签并切换它。下面是一些代码来做到这一点。切换是通过 KVO 完成的,但可以通过更简单的方式完成...

按钮通过self.theButton在IB中连接

- (void)viewDidLoad
{
[super viewDidLoad];

// Create a 'tick' label
CGRect rect;
rect.size = CGSizeMake(17, 21);
rect.origin.x = self.theButton.frame.size.width-17-10;
rect.origin.y = (self.theButton.frame.size.height-21)/2;
UILabel *label = [[UILabel alloc] initWithFrame:rect];
label.text = [NSString stringWithCString:"\342\234\223" encoding:NSUTF8StringEncoding];
label.backgroundColor = [UIColor clearColor];
label.hidden = YES;

// Put label inside the button
[self.theButton addSubview:label];

// Connect a observer on 'highlighted' (eq pressed basically)
// could use another method to track 'selected'
[self.theButton addObserver:self
forKeyPath:@"highlighted"
options:0
context:(__bridge void*)label];
}

// Toggle the 'tick' label
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(UIButton*)button
change:(NSDictionary *)change
context:(UILabel *)label
{
if (button.highlighted)
label.hidden = !label.hidden;
}

// Don't forget to cleanup
- (void)dealloc
{
[self.theButton removeObserver:self forKeyPath:@"highlighted"];
}

关于ios - 将复选标记添加到类似于 Airplay 操作表的 UIActionSheet 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16044260/

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