无法在IB中调整UIView的大小


87

可能很简单,但是我不明白为什么不能在Interface Builder中的xib中调整UIView的大小。

我在xcode中创建了一个新的视图XIB,并且在大小检查器中禁用了宽度和高度,并通过460将其灰显为320。这很奇怪,因为我可以更改其他两个视图的大小(与其他两个选项卡栏关联)项)。

我不确定是否与此有关,但我最近将sdk更新为3。

谢谢!

Answers:


81

我认为您不能在模拟任何用户界面元素(例如Interface Builder中的状态栏)时编辑大小。您可以尝试关闭模拟元素(如果已启用)。不太清楚为什么会这样,因此不胜感激的人会收到所有人的反馈-一定有充分的理由。


1
谢谢,没错。升级xcode和IB之后,默认情况下状态栏为打开状态。其他人都关闭了。

1
从Xcode 4.2,iOS 5.0.1开始,这一点已更改。我在下面的回答解释了如何实现这一目标。
哈哈2012年

1
很有帮助。只需关闭状态栏,调整大小,然后再次打开状态栏。
Wollan

9
此设置适用于Xcode 4.3.3中的ViewController.xib:“模拟指标-大小:自由格式”。此后,将启用视图大小设置。还要删除“查看模式”比例填充选项(仅在模拟指标下方)。
defvol 2012年

uuuugh我真的不喜欢这个IDE
Saik Caskey

78

为了在XCode 4.6.3 / 5.0.2中实现这一目标,您需要遵循以下屏幕截图:

  1. 在“文件检查器”下->取消勾选 Use Auto Layout
  2. 单击属性选择器并选择Freeform尺寸

为tableView创建headerView时需要此方法

在此处输入图片说明


40

您要查找的零件在第一个“检查器”面板(Command-1)上。顶部的右侧是标记为“模拟用户界面元素”的部分。默认情况下,状态栏为打开状态。您需要确保将所有三个都设置为“无”。


2
谢谢,这些答案为我节省了大量时间!有人知道为什么IB这样做吗?
格雷戈尔

谢了哥们。我一直在寻找那个。
natanavra

注意,现在是:“未指定”,而不是没有。(我的版本为3.2.3)
IcyBlueRose 2010年

我确认iPad是“未指定”的,谢谢托马斯·蒙,您为我节省了几个小时:D
Qlimax 2011年

我只看到视图控制器的视图,看不到视图
BigBoy1337 '18

26

从Xcode 4.2,iOS 5.0.1开始,默认的模拟指标包括将UIViewControllers的“ size”属性模拟为“ Inferred”

如果将此属性更改为“自由格式”,则可以调整UIViewController中包含的UIView的大小,同时还可以模拟状态栏(或与此相关的任何其他模拟)


1
现在,大小属性默认为“ Retina 4全屏”,但是将其更改为“自由格式”仍然可以。
2013年

4

只需转到检查器,转到第一个面板(或按Command-1),然后在“模拟用户界面元素”部分下将标记为“状态栏”,“顶部栏”和“底部栏”的字段更改为“无”。您可能需要单击小三角形以使其可见。


1

有趣的我也有类似的问题。我已经从xib文件中删除了所有视图,并重新添加了一个视图。将状态栏设置为“未指定”,以便不容纳状态栏。添加该视图后,将创建x = 0,y = 0,w = 320 h = 460而不是我期望的(0,0,320,480)。将高度更改为480并将其连接到文件的所有者并更改颜色以使其相对于背景具有鲜明性之后。我发现屏幕顶部和视图之间有一条白色的带。我用以下方法扩充了代码:

#define RECTLOG(rect)(NSLog(@“” #rect @“ x:%fy:%fw:%fh:%f”,rect.origin.x,rect.origin.y,rect.size.width,rect .size.height));

在viewDidLoad中

-(void)viewDidLoad {
    [super viewDidLoad];
    RECTLOG(self.view.frame);
}

原来视图是从IB加载的,实际上是(0,20,320,480)作为解决方法,我使用self.view.frame = CGRectMake(0,0,320,480)重置了视图的框架。

我正在使用IB 3.2.5

我很想知道这个的一些修复方法。


3
仅供参考,您可以使用NSStringFromCGRect(rect)获取表示CGRect的可打印字符串。
Berry

仅供参考,我检查了一下,您实际上也可以从CGPoint和CGSize获取字符串值!非常厨师,谢谢。
FierceMonkey

1

我注意到在创建xib文件时自动创建的UIView不能从大小调整面板或边缘手柄调整大小。

我要做的就是添加另一个UIView,并将所有内容从旧的UIView拖动到新的UIView,然后删除旧的UIView。

它为我解决了问题,但是是的,我认为Apple的界面生成器存在一个潜在的问题要解决(如果我错了,请纠正我)。

我正在使用XCode 4集成接口构建器。


0

我用不同的方式整理了一下...

使用您喜欢的文本编辑器打开您的xib,然后编辑此行

        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CompassViewController">

CompassViewController 是您试图与您的笔尖/ xib链接的类名。

只需使用正确的班级名称编辑班级名称,就可以完成;)


0

在此处输入图片说明在情节提要中,选择UIVIew并转到属性检查器,将UIVIew的大小更改为“ FreeForm”,而不是“ Inferred”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.