0

UISegmentControlサブレイヤーのリストをスーパーレイヤーに表示するのと同様の動作でコントロールを作成する必要があります。これらのサブレイヤーの数は変わる可能性があるため、それらの位置を計算する必要があります。

ここで問題があります...幅が31のスーパーレイヤーを取得し、その中に4つのサブレイヤーを配置する場合は、それぞれ幅が31/4=7.75の4つのサブレイヤーを作成する必要があります。したがって、最初のレイヤーのorigin.x = 0、2番目のレイヤーのorigin.x = 7.75、3番目のレイヤーの15.5、最後のレイヤーの23.25です。

明らかに、これらの位置は無効であり、ぼやけたレイヤーが生成されます...スーパーレイヤー全体を埋めることができ、widthとorigin.xの整数値を維持できるように、この値を丸める方法が見つかりません。誰かが解決策を持っていますか?

4

1 に答える 1

2

正確な値を使用してすべての原点を計算し、それらを最も近い積分に丸めることができます。次に、隣接する2つの原点を単純に差し引く(または最後のサブレイヤーの原点から親の合計幅を差し引く)ことにより、すべての幅を計算します。これにより、親を完全にカバーするレイヤーが生成され、座標が統合されますが、一部のレイヤーは他のレイヤーより1ピクセル広くなります。

于 2013-02-22T21:58:38.627 に答える