ビュー内で垂直方向に整列できるようにしたい CATextLayer があります。ビューの上部、中央、または下部に配置するように制約を設定できます。しかし、ユーザーがその場でこれを変更できるようにしたいと考えています。CATextLayer を設定するときは、この制約を使用して中央に配置します。
[textLayer addConstraint: [CAConstraint constraintWithAttribute:kCAConstraintMidY
relativeTo:@"superlayer"
attribute:kCAConstraintMidY]];
これはうまくいきますが、レイヤーを更新してビューの上部に揃えたい場合は、次のようにします。
[textLayer addConstraint: [CAConstraint constraintWithAttribute:kCAConstraintMaxY
relativeTo:@"superlayer"
attribute:kCAConstraintMaxY]];
新しい制約を追加すると、上部に配置されず、ビューの上部を超えて、その一部しか表示されなくなります。両方の制約を適用しようとしているようです。クラスでCAConstraint変数を定義し、CATextLayerに追加した後にその変数を更新すると、removeConstraintはなく、同じことが起こるようです。毎回 CATextLayer を再作成する必要がありますか?