Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c CALayer和float位置列表_Objective C_Macos_Calayer - Fatal编程技术网

Objective c CALayer和float位置列表

Objective c CALayer和float位置列表,objective-c,macos,calayer,Objective C,Macos,Calayer,我需要创建一个行为类似于UISegmentControl的控件,它将子层列表显示到一个超层中。 这些子层的数量可以改变,我必须计算它们的位置 这里的问题。。。如果我取一个宽度等于31的超层,我想在其中放置4个子层,我应该创建4个子层,每个子层的宽度为31/4=7.75。第一层有原点,x=0,第二层有原点,x=7.75,第三层15.5,最后一层23.25 显然,这些位置是无效的,它们会产生模糊的层。。。我找不到一种方法来舍入这个值,因为它能够填充整个超层并保持宽度和原点的整数值。x,有人有办法吗

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

这里的问题。。。如果我取一个宽度等于31的超层,我想在其中放置4个子层,我应该创建4个子层,每个子层的宽度为31/4=7.75。第一层有原点,x=0,第二层有原点,x=7.75,第三层15.5,最后一层23.25


显然,这些位置是无效的,它们会产生模糊的层。。。我找不到一种方法来舍入这个值,因为它能够填充整个超层并保持宽度和原点的整数值。x,有人有办法吗

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