こんにちは私はラベルrectがUIViewと交差する場合にUILabelのテキストの色を変更しようとしています、私は多分私が使用できるプロパティまたは何かがあると思っていました。下の画像のように:
誰かが以前にこの問題に遭遇したことがありますか、またはこのことを始めるために私は何を読むべきですか?
前もって感謝します
こんにちは私はラベルrectがUIViewと交差する場合にUILabelのテキストの色を変更しようとしています、私は多分私が使用できるプロパティまたは何かがあると思っていました。下の画像のように:
誰かが以前にこの問題に遭遇したことがありますか、またはこのことを始めるために私は何を読むべきですか?
前もって感謝します
いいパズル!これが私がすることです:
origin
それらの commonに同じものがありsuperview
ます。backgroundColor
、ラベルは明るくtextColor
、進行状況ビューはその逆です。clipsToBounds==YES
秘訣は、ビューの原点とラベルの原点が同じで、トップ ビューに clipsToBounds があると、すべてが正しく見えるということです。
これら 2 つのビューを、ReallyCoolProgressView という名前の新しい UIView サブクラスにドロップし、1 つのパブリック メソッドを指定します。
-(void)setProgress:(float)progress
progress は 0.0 から 1.0 までの数値です。このメソッドは、progressBar の幅をスケーリングし、両方のラベルのテキストを設定します@"Progress %f", progress*100
テキストを使用してアルファマスクを作成するためのこのチュートリアルをご覧ください。この手法を使用すると、前景ビューと背景ビューの両方を移動する標準のプログレスバーを実装して、必要な効果を実現できます。
これらの方法を確認することをお勧めします。
このメソッドを使用してNSStringのサイズをチェックすることにより、文字列のどの程度がビューとオーバーラップしているかをチェックできます。
[yourString sizeWithFont:yourFont constrainedToSize:maximumAllowedSize];
次に、NSMutableAttributedStringを使用して、ラベルの文字列の一部を1つの色に設定し、後者の部分を別の色に設定できます。
//Just an example usage
//It sets the color of characters starting from 3 to the end to blue
[str addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(3, str.length)];
//Now you have to set your string as attributed text just like below
//UILabels now support attributed strings by default which is quite handy
[yourLabel setAttributedString:str];