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

时间:2014-02-11 20:41:34

标签: ios cocoa-touch 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英寸屏幕上进行测试时,我注意到Actionsheet没有采用任何这种样式。我只是在动作列表需要滚动视图来处理时才发生故障按钮。

我是否必须访问ActionView子类中的scrollView才能生成UIButton样式?

2 个答案:

答案 0 :(得分:1)

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

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

组件对于Appstore绝对安全,因此您可以在应用程序中使用它。享受!

答案 1 :(得分:0)

您可以遍历操作表的子视图以查找scrollview子类。这不会让您的应用被拒绝。

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