0

を 3D 空間で回転させた後UILabel、切り捨てられます。最初はテキストがうまく収まるので、ラベルが回転後にテキストを切り捨てる理由はわかりません。

ここに画像の説明を入力

ここに画像の説明を入力

これが私のローテーションコードです。コードをコメントアウトすると ( を除くsizeToFit)、すべて問題なく収まります。

CALayer *layer = label.layer;
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -500;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0f * M_PI / 180.0f, 0.0f, 1.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;

[label sizeToFit];

を呼び出した後にラベルのフレームのサイズを変更できますが、sizeToFitプログラムで正しい数を判断できません。次のコードでは、テキストの幅を決定し、ラベルのフレームのサイズを変更していますが、テキストはまだ切り詰められています。

CGRect frame = label.frame;
frame.size.width = [label.text sizeWithFont:label.font].width;
label.frame = frame;
4

2 に答える 2