无法在IB中调整UIView的大小

时间:2009-07-06 15:39:36

标签: iphone xcode interface-builder

可能很简单,但我无法理解为什么我无法在Interface Builder中的xib中调整UIView的大小。

我在xcode和大小检查器中创建了一个新的视图XIB,宽度和高度被禁用并变为320乘460.这很奇怪,因为我可以更改其他两个视图的大小(与其他视图相关联)两个标签栏项目)。

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

谢谢!

9 个答案:

答案 0 :(得分:81)

我认为在模拟任何用户界面元素(例如Interface Builder中的状态栏)时无法编辑大小。如果启用了模拟元素,您可以尝试关闭模拟元素。不完全确定为什么会这样,所以希望得到任何知道原因的人的反馈 - 必须有充分的理由。

答案 1 :(得分:74)

为了在XCode 4.6.3 / 5.0.2中实现这一点,您需要按照以下屏幕截图进行操作:

  1. 在“文件检查器”下 - >解开Use Auto Layout
  2. 点击属性选择器&选择Freeform作为尺寸
  3. 为tableView

    创建headerView时需要这样做

    enter image description here

答案 2 :(得分:40)

您要查找的部分位于第一个Inspector面板(Command-1)上。在顶部有一个标记为模拟用户界面元素的部分。默认情况下,状态栏处于打开状态。您需要确保所有三个都设置为无。

答案 3 :(得分:26)

与Xcode 4.2,iOS 5.0.1一样,默认的模拟指标包括将UIViewControllers的'size'属性模拟为'Inferred'

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

答案 4 :(得分:4)

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

答案 5 :(得分:1)

有趣我有类似的问题。我已从xib文件中删除了所有视图并重新添加了视图。将状态栏设置为“未指定”,以便不支持状态栏。添加时,视图会被创建为x = 0,y = 0,w = 320 h = 460而不是(0,0,320,480),正如我所期望的那样。将高度更改为480并将其连接到文件所有者并更改颜色以使其与背景相区别。我想知道屏幕顶部和视图之间有一条白色条带。 我用以下代码扩充了我的代码:

#define RECTLOG(rect)    (NSLog(@""  #rect @" x:%f y:%f w:%f h:%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

我很想知道这个问题的一些解决方法。

答案 6 :(得分:1)

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

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

它为我解决了这个问题但是,我认为Apple的界面构建器存在潜在的问题需要解决(如果我错了,有人会纠正我)。

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

答案 7 :(得分:0)

我以不同的方式对它进行了整理......

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

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

CompassViewController是您尝试将nib / xib与。

链接的类名

只需使用正确的类名编辑您的班级名称即可完成;)

答案 8 :(得分:0)

enter image description here在情节提要中选择UIVIew并转到属性检查器,将UIVIew的大小更改为“ FreeForm”,而不是“推断”。