【问题标题】:iOS 7 UIDatePicker in UIAlertView customisationiOS 7 UIDatePicker 中的 UIAlertView 自定义
【发布时间】:2013-09-24 12:52:18
【问题描述】:

伙计们,我正在将 UIDatePicker 添加到 UIAlertView,例如 this

iOS 6 及以下版本很好,现在 iOS 7 是这样的

任何想法为什么会发生这种情况?有没有更好的方法来做到这一点?任何帮助表示赞赏。

【问题讨论】:

    标签: ios uialertview uidatepicker ios7


    【解决方案1】:

    没有解决方法。从未支持向 UIAlertView 添加子视图,在 iOS 7 中,这会导致子视图不显示。 Apple 开发者论坛上已经发布了一些解决方法,但它们很容易在未来的版本中失效。

    我建议提交错误报告。许多其他人(包括我自己)都这样做了,Apple 收到的请求越多,它的优先级就越高。

    编辑:我写了一个UIAlertView 克隆,它允许添加子视图:SDCAlertView

    【讨论】:

    • 谢谢,我知道这不是最好的方法,但我的应用需要这个。
    • 是的,很多人都需要它。这就是为什么提交错误如此重要的原因。
    • 肯定会提交错误。
    【解决方案2】:

    它不受支持,我不相信他们会“解决这个问题”.. 滚动您自己的警报视图或使用开源替代方案。另见UIAlertView addSubview in iOS7

    【讨论】:

    • 谢谢,我正在考虑使用 UIView 而不是 UIAlertView 或一些开源组件。
    【解决方案3】:

    在 iOS7 上,您应该使用 UIModalPresentationCustomtransitioningDelegate 在 UIKit 中使用新的自定义模态转换支持。

    使用这些,您可以创建一个类似于警报视图但自定义的视图,您可以在其中添加日期选择器。

    更多信息在这里: https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewControllerTransitioningDelegate_protocol/Reference/Reference.html#//apple_ref/occ/intf/UIViewControllerTransitioningDelegate

    【讨论】:

      【解决方案4】:

      这是我在 AlertView 中支持 addSubview 的组件。

      CXAlertView - 自定义警报视图,允许您将视图添加为主要内容。

      【讨论】:

        【解决方案5】:

        您可以在 iOS7 的标准警报视图中将 accessoryView 更改为任何自己的 customContentView

        [alertView setValue:customContentView forKey:@"accessoryView"];
        

        请注意,您必须在 [alertView show] 之前调用它。

        最简单的示例:

        UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"TEST" message:@"subview" delegate:nil cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil];
        UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];
        v.backgroundColor = [UIColor yellowColor];
        [av setValue:v forKey:@"accessoryView"];
        [av show];
        

        与添加 DatePicker 的方式完全相同。

        【讨论】:

        • 谢谢!这正是我想要的!
        猜你喜欢
        • 2012-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-07
        • 2011-10-14
        • 2011-05-10
        • 1970-01-01
        相关资源
        最近更新 更多