6

「フェード アウト」という用語が適切かどうかはわかりません。アニメーション効果を指すことが多いようですが、実現したいことは iPhone Safari アプリのアドレス バーで確認できます。URL が長すぎて表示できない場合、文字列の末尾が「...」で切り捨てられるのではなく、「フェードアウト」します。

これは、XIB ファイルで Line Breaks 設定を「Truncate Tail」から「Clip」に変更し、透過性のある画像を使用して効果を作成することで簡単に実行できると考えました。ただし、「クリップ」に設定すると、Safari や Chrome for iPhone で見られるように、単語の途中や文字の途中ではなく、単語の最後でクリップされるようです。これは私にはうまくいきません。実際にはテキストが完成したような印象を与えますが、詳しく調べると、ユーザーはテキストが意味をなさないことに気付くでしょう。

テキストラベルに収まらない文字列を「フェードアウト」する最良の方法は何ですか? 前もって感謝します。

4

2 に答える 2

6

まさにこれを行う再利用可能なコンポーネントであるMac 用 Google ツールボックスGTMFadeTruncatingLabelを見てください。

于 2012-08-28T09:10:27.050 に答える
2

ここにあるカテゴリ ( https://stackoverflow.com/a/24508153/2654425 ) とグラデーションを組み合わせて使用​​することもできます。

そして、やります:

if([myLabel isTruncated]){

  CAGradientLayer *l = [CAGradientLayer layer];
            l.frame = myLabel.bounds;
            l.colors = @[(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor];
            l.startPoint = CGPointMake(1.f, .1f);
            l.endPoint = CGPointMake(0.95f, 1.0f);
            myLabel.layer.mask = l;



}

これは iOS 7 & iOS8 で動作します。

于 2015-02-17T10:15:49.157 に答える