【问题标题】:List of CALayer and float positionsCALayer 和浮动位置列表
【发布时间】:2013-02-22 21:48:32
【问题描述】:

我需要创建一个行为类似于UISegmentControl 的控件,它将子层列表显示到超级层中。 这些子层的数量可以改变,我必须计算它们的位置。

这里的问题...如果我采用宽度等于 31 的超级层并且我想在其中放置 4 个子层,我应该创建 4 个子层,每个宽度 31/4 = 7.75。所以第一层有 origin.x = 0,第二层有 origin.x = 7.75,第三层是 15.5,最后一层是 23.25。

显然这些位置是无效的,它们会产生模糊的图层......我找不到一种方法来舍入这个值,能够填充整个超级层并保持宽度和 origin.x 的整数值,有人有一个解法?

【问题讨论】:

    标签: objective-c macos calayer


    【解决方案1】:

    您可以使用精确值计算所有原点,然后将它们四舍五入到最接近的整数。然后通过简单地减去两个相邻的原点(或从最终子层的原点减去父级的总宽度)来计算所有宽度。这将生成完全覆盖您的父级的图层,具有整数坐标,但某些图层将比其他图层宽 1 个像素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多