ios - UILabelクリップを作成できません

ios

文字列のサイズを調整して高さのフィット(1行)を最大化し、lineBreakMode:UILineBreakModeClipが実行する必要がある過剰な幅が(グリフの中間のように)カットオフされるようにしました。代わりに、テキストが収まる(予期しない、または望まない)完全な文字のみを描画することにより、テキストが切り捨てられる(?)ように見えます。基本的に:

[label setNumberOfLines:1];
label.font = [UIFont systemFontOfSize:64.0f];
label.lineBreakMode = UILineBreakModeClip;
[label setText:@"ABCDEIIIIII"];
答え
related, more complicated questionはこれに対する解決策を示します。大きな幅のラベルを作成し、それを目的の幅のUIViewに追加します。 (次に、UIViewをアプリに追加します。)UIViewのclipsToBoundsプロパティを設定すると、必要な中間グリフクリッピングが得られます。

説明:ラベルを100pxで切り捨てるとします。 UILabelの幅を200に設定すると、希望する100ピクセルが適切にレンダリングされます。 200で完全な文字で切り捨てるかどうかは関係ありません。このラベルを100pxのUIViewに追加し、clipsToBoundsを設定すると、必要なラベルの100pxのみが表示され、その後、グリフの途中で切り取られます。

説明するために、他の投稿から転用:

UIView *topContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];
topContainer.clipsToBounds = YES;
topContainer.opaque = NO;
topContainer.backgroundColor = [UIColor clearColor];

UILabel *topLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 50)];
[topLabel setText:@"ABCDEIIIIII"];
topLabel.opaque = NO;

[topContainer addSubview:topLabel];
[self.view addSubview:topContainer];
関連記事

javascript - / JavaScriptを使用したPhoneGapアプリのプッシュ通知?

ios - UIViewでのUIImage画像の高速描画

ios - コアデータの元に戻す/やり直し-元に戻された内容によってアクションが異なります

iphone - 特定のiOSバージョンでサポートされていないライブラリをバイパスする方法は?

iphone - プログラムでスイッチをscrollviewに追加すると例外がスローされる

ios - iOS用のAirアプリで「このアプリを評価」ボタンを作成するにはどうすればよいですか?[終了]

iphone - iPhoneのキーボードボタンを複製しようとしています

iphone - UILabelで単語をラップする方法

ios - UIStoryboard popViewController

objective-c - このデータは安全に送信されていますか?