2010-05-29 43 views
2

通过iPhone SDK书籍和其中一个示例运行时,我创建了一个表,然后在表中添加UISegmentedControl进行排序。UISegmentedControl不扩大导航栏的大小/非常压缩

我尽职尽责地在IB这样做,它看上去很不错:

IB Screenshot http://img.skitch.com/20100529-83sefni21q4nj51rw1mghh2yj1.jpg

当我在模拟器或我的手机上运行它,它完全压扁:

Squished http://img.skitch.com/20100529-x3pmr7gkb6xpm766bupi7quy55.jpg

的按钮工作完美,只是他们没有根据他们的内容来确定尺寸。任何想法出了什么问题?

下面是我设置的属性:

Attributes http://img.skitch.com/20100529-tp4d69bk8x98c6sjpmcne92etb.jpg

回答

1

好的,所以在试图实现@Chris Gummer的答案时,我似乎已经了解了更多关于Size-> View Size属性面板的工作原理。默认值为:

Default Sizing http://img.skitch.com/20100529-gg9dwq5em3557yb1d6d721hpn4.jpg

,这是不是一个好的默认情况下,它似乎。我的书没有提到需要调整这个,所以我没有看它。设置框的内部水平方向(我猜意思是“适合宽度可用空间”)的伎俩:

The Answer http://img.skitch.com/20100529-xt1bqghb4kbm2pbcqf1i1uygab.jpg

1

你可以尝试明确设置每个分段控制的部件的宽度。单击检查器顶部的大小选项卡,并设置每个组件的宽度。

1

我曾经经历过同样的问题。问题在于UINavigationController的视图不是层次结构中的顶层视图(它不直接添加到UIWindow中),而是作为子视图添加到另一个视图控制器的视图中。这只是猜测,也许这也是你的问题(或者有多个可见的视图控制器)。

+0

我还是新的这一切,所以我不能100%确定我遵循,但导航控制器的视图是“从RootView控制器加载”,这是一个表视图。 – davetron5000 2010-05-29 21:55:19

+0

检查你的应用程序委托,它应该包含一个[window addSubview:]行。如果它的参数不是像“navigationController.view”,那么这个例子是不好的(至少,恕我直言)。如果是这种情况,请尝试将navigationController.view添加到窗口(而不是旧的子视图),并将其rootViewController设置为具有分段控件的视图控制器。 – gyim 2010-05-29 22:18:41

+0

啊,呃。是的,它的设置就像你描述的那样;我实际上并没有从新项目中产生的东西中摸到这个。 – davetron5000 2010-05-30 01:00:32