9

右揃えのテキストが含まれているを呼び出しsizeToFitています。UILabelの高さと幅を縮小しUILabel、テキストをの左上に合わせUILabelます。

さて...の位置UILabelが間違っています。UILabelステーを元の位置(右揃え)に戻す、または元の位置に表示されるように移動するにはどうすればよいですか?

繰り返しますが、問題は、sizeToFitメソッドがの右側から幅を縮小していることUILabelです。UILabelテキストを左揃えとして扱います。しかし、私のテキストは正しく配置されています。つまり、の右側の境界線UILabelが私のテキストの始まりです。

4

2 に答える 2

16
@implementation UILabel (Additions)

- (void)sizeToFitWithAlignmentRight {
    CGRect beforeFrame = self.frame;
    [self sizeToFit];
    CGRect afterFrame = self.frame;
    self.frame = CGRectMake(beforeFrame.origin.x + beforeFrame.size.width - afterFrame.size.width, self.frame.origin.y, self.frame.size.width, self.frame.size.height);
}

@end
于 2013-05-21T10:53:13.007 に答える
3

前後の幅を確認し、ビューの中心を差/2だけ右に移動します。

ちなみに、「箱」(フレーム)は両方向に縮んでいて、中心はそのままになっていると思います。

于 2011-04-05T09:01:22.053 に答える