更改强制滚动操作表时 UIActionSheet 按钮样式不起作用



我有一个UIActionsheetClass,我可以使用以下代码进行操作:

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
NSLog(@"action sheet %@", actionSheet.subviews);
for (UIView *subview in actionSheet.subviews) {
    if ([subview isKindOfClass:[UIButton class]]) {
        UIButton *button = (UIButton *)subview;
        [button setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
        [button.titleLabel setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:20]];
    }
}
}

此代码目前运行良好,但是在 3.5 英寸屏幕上进行测试时,我注意到操作表不采用任何这种样式。我只在操作列表需要滚动视图来处理按钮时才确定它。

我是否必须访问 ActionView 子类内部的滚动视图才能创建 UIButton 样式?

请查看我的子类UICustomActionSheet。我刚刚推送了最新的更改,这些更改允许正确显示iOs6和iOs7设计的样式。https://github.com/gloomcore/UICustomActionSheet

您可以为每个按钮设置颜色,字体,文本颜色以及图像。适用于iPhone和iPad。以及按钮滚动工作正常的情况。你可以找到我的解决方案;-)))

组件对于应用商店来说是绝对安全的,因此您可以在应用程序中使用它。享受!

您可以循环浏览操作表的子视图以查找滚动视图子类。 这不会让你的应用被拒绝。

但是,我不建议这种行为。 苹果最近在iOS 7中对UIAlertView采用了这种方法(他们实际上不再将警报视图放在屏幕上 - 使用不同的视图)。

最新更新