Xcode Interface Builder模拟了具有自定义高度的导航栏的指标

时间:2013-01-09 17:39:53

标签: ios interface-builder uinavigationbar

我有一个项目,在整个应用程序中使用自定义高度导航栏,因此它是62像素而不是44像素高。我正在尝试使用故事板编辑器(界面构建器)构建和布局我的视图,尽管在视图控制器选项下使用模拟度量下的导航栏设置的顶栏设置属性时,这将变为默认的44像素而不是自定义高度导航栏(64px)我想要。

这样,所有视图工作区都显示不同的大小,我总是需要计算会超出或不会超出的范围。

有没有什么方法可以优雅地使用模拟指标和自定义高度导航栏子类,同时保持我必须在剩余空间上工作的确切高度?

2 个答案:

答案 0 :(得分:4)

无法通过Xcode将模拟指标更改为自定义值。 一种可能性是设计自定义导航栏并将其复制到任何地方而不是导航,但之后不再模拟它。 或者你可以通过进入

进行一些破解
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/PrivatePlugIns/IDEInterfaceBuilderCocoaTouchIntegration.ideplugin/Contents/Resources

并打开CocoaTouchConstraints.plist 在此文件中,您可以将NavigationBar的值设置为所需的值。因此,如果您想要一个60高的导航栏,只需将最大和最小高度设置为60:

<key>NavigationBar</key>
    <dict>
        <key>MaximumSize</key>
        <string>{10000, 60}</string>
        <key>MinimumSize</key>
        <string>{0, 60}</string>
    </dict>

保存后,您需要重新启动Xcode ,您的NavigationBar将具有所需的高度。

答案 1 :(得分:0)

我担心你不能真的这样做,如果你想在Interface Building中直接有类似的行为和正确的自动布局和约束,为你的自定义导航栏类​​添加一个简单的视图,并使用正确的指标(它当导航栏继承自UIView时,它将正常工作)只需添加视图,设置自定义类,并为视图的导航栏和顶部对象添加约束。