轻型UIAlertView / UIActionView定制

时间:2014-01-24 09:57:57

标签: ios iphone xcode

这种类型的自定义会被视为App Store的安全吗?

UIColor *veBlueColor = [UIColor colorWithRed:3.0/255.0 green:147.0/255.0 blue:215.0/255.0 alpha:1];
UIColor *veRedColor = [UIColor colorWithRed:242.0/255.0 green:93.0/255.0 blue:69.0/255.0 alpha:1];

for (UIView *subview in actionSheet.subviews) {

    if ([subview isKindOfClass:[UIButton class]]) {

        UIButton *button                    = (UIButton*)subview;
        UIColor *buttonColor                = [button titleColorForState:UIControlStateNormal];
        NSString *buttonColorString         = [buttonColor description];

        UIColor *destructiveColor           = [UIColor colorWithRed:0.992157 green:0.278431 blue:0.168627 alpha:1];
        NSString *destructiveColorString    = [destructiveColor description];

        bool isDestructiveButton            = ([buttonColorString isEqual:destructiveColorString]?YES:NO);

        if (!isDestructiveButton) {

            [button setTitleColor:veBlueColor forState:UIControlStateNormal];
        }
        else {

            [button setTitleColor:veRedColor forState:UIControlStateNormal];
        }
    }
}

我已经阅读了人机界面指南,但总是有“灰色区域”,并且谷歌搜索返回了很多人声称他们已经到达那里应用程序批准了Apple明确禁止的自定义。

所以我的问题是,您对“轻”定制的体验是什么?

1 个答案:

答案 0 :(得分:0)

在我看来,这不安全。 Apple文档明确指出:“UIActionSheet不是设计为子类,也不应该为其层次结构添加视图。如果您需要提供比UIActionSheet API提供的更多自定义的工作表,您可以创建自己的工作表并以模态方式呈现它with presentViewController:animated:completion:。“

在这种情况下,您不是要添加子视图,而是实际上正在检索已经存在的子视图并自定义它们 - 从Apple的角度来看,我认为它非常相似。

如果UIActionSheet API对您的需求过于严格,我建议您创建自己的ActionSheet。 (我建议你看一下Git Hub,因为有不同的解决方案可能适合你)。