Reu*_*ven 17
基于一些线程,我在UIActionSheet上汇总了一个类别的答案,添加了一个setButton:toState方法,如下所示.希望能帮助到你:
@interface UIActionSheet(ButtonState)
- (void)setButton:(NSInteger)buttonIndex toState:(BOOL)enbaled;
@end
@implementation UIActionSheet(ButtonState)
- (void)setButton:(NSInteger)buttonIndex toState:(BOOL)enabled {
for (UIView* view in self.subviews)
{
if ([view isKindOfClass:[UIButton class]])
{
if (buttonIndex == 0) {
if ([view respondsToSelector:@selector(setEnabled:)])
{
UIButton* button = (UIButton*)view;
button.enabled = enabled;
}
}
buttonIndex--;
}
}
}
@end
Run Code Online (Sandbox Code Playgroud)
oxi*_*gen -2
这些按钮是 UIActionSheet 的子视图,它们的类是 UIThreePartButton
你可以获得它们并做你想做的一切:
UIActionSheet *a = [[UIActionSheet alloc]initWithTitle:@"" delegate: nil cancelButtonTitle: @"c" destructiveButtonTitle: @"d" otherButtonTitles: @"ot", nil];
[a showInView: window];
for(UIView *v in [a subviews])
{
if([[v description] hasPrefix: @"<UIThreePartButton"] )
{
v.hidden = YES; //hide
//((UIButton*)v).enabled = NO; // disable
}
}
Run Code Online (Sandbox Code Playgroud)