在iOS5.1中,我应该使用什么替代已弃用的UISegmentedControlStyleBezeled?

10

在构建我的应用程序时,我收到警告,指示我的UISegmentedControlStyleBezeled已不推荐使用。没有其他类型的UISegmentedControl看起来接近Bezeled,所以我不知道我可以使用什么替代它。我需要像UISegmentedControlStyleBar一样的东西,但高度更高。

此外,在查看UISegmentedControl.h时发现了以下内容...

typedef enum {
    UISegmentedControlStylePlain,     // large plain
    UISegmentedControlStyleBordered,  // large bordered
    UISegmentedControlStyleBar,       // small button/nav bar style. tintable
    UISegmentedControlStyleBezeled,   // DEPRECATED. Do not use this style.
} UISegmentedControlStyle;

1
我看到了同样的事情。文档中没有将其弃用,这让我认为它不会很快过时。但是随着最近UDID的麻烦,我们必须想知道什么时候会出现问题。 - smparkes
2个回答

5

目前,我使用的解决方法是使用UISegmentedControlStyleBar并增加其框架高度。您可能还希望保持相同的中心,以避免它向下扩展。


那个解决方法的问题在于,如果你对分段控件调用 sizeToFit 方法,它会返回一个较小的高度。如果你正在动态管理段,则可能需要这样做。所以这不是一个非常健壮的解决方案。 - matt

4

我有一种感觉,他们废弃它的原因是因为在5.1中意外破坏了它。

我相信随着人们开始迁移离开5.1,我们将再次看到它的出现。


1
你怎么看待它的损坏?对我来说,我使用它时并没有出现问题。啊...有些人遇到了色调问题。到目前为止,我还没有遇到过。不期待这种情况发生... - smparkes
嗯,这很奇怪。我尝试过了,它可以正常工作。它正确显示为StyleBezeled。只是当我尝试获取它的barStyle属性时,我得到的却是StyleBar:/ - Hlung
在iOS 6中,它似乎完全失效了。如果您请求UISegmentedControlStyleBezeled,您将无法获得它。 - matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接