1

私はiPhoneプログラミングに慣れていないので、コーディングも少ししました。私はリンゴのドキュメントを読んだことがありません。しかし今、私はそれを読み始めたばかりで、いくつかの方法が私にとって非常に難しいことがわかりました.SOFは私のコーディングの鍵であったため、これを実装するのが難しいと感じています.UILabelクラスの使い方を教えてください.インスタンスメソッド

– (CGRect)textRectForBounds:limitedToNumberOfLines:
– (void)drawTextInRect:

可能であれば、あなたの助けを期待して、事前に感謝します.:)

4

2 に答える 2

2

メソッド「textRectForBounds:limitedToNumberOfLines:」は、ラベルのテキストの描画長方形を返します。

構文:(CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines

boundsレシーバーの境界矩形。numberOfLinesラベルに使用する最大行数。値0は、最大行数がなく、長方形がすべてのテキストを含む必要があることを示します

このメソッドは直接呼び出さないでください。ただし、サブクラスによってオーバーライドする必要があります。

次の方法で上書きできます。

- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines (NSInteger)numberOfLines
{
return CGRectInset(bounds, MARGIN, MARGIN);
}

- (void)drawTextInRect:(CGRect)rect
{
[super drawTextInRect: CGRectInset(self.bounds, MARGIN, MARGIN)];
} 
于 2012-07-04T12:16:43.887 に答える
1

特定の長方形にテキストを描画する場合は、UILabel をサブクラス化し、オーバーライドする必要があります– (CGRect)textRectForBounds:limitedToNumberOfLines:。UILabel の代わりにサブクラスを使用することを忘れないでください。

たとえば、ラベルの左半分だけにテキストを描画したいとします。

- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines {
   //Original method returns the bounds, so let's find the left half of the bounds
   CGRect leftHalfRect = CGRectMake(0, 0, self.bounds.size.width/2, self.bounds.size.height);
   return leftHalfRect;
}

このメソッドは境界の左半分の四角形を返すようになったため、テキストは左半分の四角形にのみ描画されます。

于 2012-07-04T12:12:20.627 に答える