【问题标题】:Using float values in storyboard在情节提要中使用浮点值
【发布时间】:2014-03-24 09:15:28
【问题描述】:

我想为 Storyboard 中的 UIButtons 框架分配一个浮点值。

但我只能使用 int 值。例如,是否不鼓励使用 .5?因为我有一些按钮,我想按照原始的 Photoshop 设计来放置它们。

例如,我有一个按钮需要放置在 X:151 ,我该如何实现?

【问题讨论】:

  • 151 不是浮点值。它是一个 int 值。所以,没问题!
  • @matt 别傻了,它在 psd 中是 151 in px,所以它必须是 75.5 in points ;)

标签: xcode cocoa-touch interface-builder uistoryboard


【解决方案1】:

不要使用浮点值。正如您正确观察到的那样,Interface Builder 可以防止这种情况发生;但即使在代码中也不应该这样做。恰恰相反:当您在代码中分配一个框架(或相关组件)时,您应该首先将其设置为整数值。 (其实还有CGRectIntegral等功能可以帮到你。)

原因是,否则你可能会在屏幕上出现像素之间,并且视图将无法正确显示(因为没有半像素之类的东西)。坚持使用整数个点,以便使用整数个像素。

【讨论】:

  • 好吧,这正是我的想法。我从不这样做,但想知道我是否只是缺乏一些知识。您能否就该主题添加一些苹果指南,因为我没有找到任何指南,以便我可以接受这个作为正确答案?
【解决方案2】:

以编程方式执行(例如单击here),我不知道故事板阻止对框架成分使用非整数值的原因,但我知道三件事:

  1. 它以编程方式工作。 (只需在情节提要中分配一个虚拟值,然后在代码中覆盖它。)
  2. Apple 在 iOS 中对其原生对象使用非整数值,例如表格视图中单元格之间的行分隔符为 0.5 磅高。
  3. 点不是像素(根据撰写这些行的时间,响应已接受的答案。)

【讨论】:

  • 我的回答不会混淆点和像素。它准确地做出了区分。
  • 您是对的,因为您不会混淆它们,但是您提到非整数点会导致小数像素,这会在小数点和生成的像素之间建立无基础的联系. (如果您不同意,那么您必须指出 Apple 文档中禁止使用小数点的参考,并且与我提到的表格单元格分隔符高度的 0.5 点的用法相矛盾。)
  • "并与他们自己使用的 0.5 点相矛盾,因为我已经提到了表格单元格分隔符的高度" 但这是因为在双分辨率屏幕上,0.5 点是 1 个像素 - 一个整数!
  • 所以你声称使用0.5分是安全的还是不安全的?在您的(接受的)答案中,您说“不要使用浮点值”。显然,Apple 工程师没有考虑您接受的答案,并在他们自己的 iOS 代码中使用了 0.5 分。您没有提供证据或参考来证明您的主张,也没有反驳 iOS 在其热门对象中使用 0.5 分这一事实。
【解决方案3】:

首先,我找不到不在情节提要上使用浮点值的可靠参考。因此,按照工作流程/程序在情节提要上实现浮点值。最后尝试使用 Xcode 版本 7.3.1 (7D1014)。

选择视图。删除 UIView 的任何先前约束(如果有)。然后添加所有约束,包括浮动值。就我而言,它是领先、尾随、底部和高度。只有底部有一个 Int 值,其他的是浮动的。按“添加 X 约束”按钮。

最后我有以下几点:

问题是每当我想编辑值时,我必须删除所有以前的约束并根据新的约束重新添加它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-24
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    相关资源
    最近更新 更多