単一のフォントで描画された文字列を含む単純なカスタム UIView を作成しようとしていますが、最初の文字が少し大きくなっています。
これは、2 つの UILabel: を並べて配置することで簡単に実装できると思いました。
NSString sizeWithFont を使用して文字列を測定し、正しくレイアウトできるようにします。
しかし、返された四角形のフォント ベースラインは、設定したフォント サイズに応じて +/- 1 ピクセルで変化することに気付きました。これが私のコードです:
NSString* ctxt = [text substringToIndex:1];
NSString* ttxt = [text substringFromIndex:1];
CGSize sz = [ctxt sizeWithFont: cfont ];
clbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, sz.width, sz.height)];
clbl.text = ctxt;
clbl.font = cfont;
clbl.backgroundColor = [UIColor clearColor];
[contentView addSubview:clbl];
CGSize sz2 = [ttxt sizeWithFont: tfont];
tlbl = [[UILabel alloc] initWithFrame:CGRectMake(sz.width, (sz.height - sz2.height), sz2.width, sz2.height)];
tlbl.text = ttxt;
tlbl.font = tfont;
tlbl.backgroundColor = [UIColor clearColor];
[contentView addSubview:tlbl];
サイズとして 12.0 と 14.0 を使用すると、問題なく動作します。しかし、代わりに 13.0 と 15.0 を使用すると、最初の文字が 1 ピクセル高すぎます。
これは既知の問題ですか?
それを回避する方法はありますか?
CSS と HTML ページを使用して UIWebView を作成するのは、やり過ぎのようです。動的文字列を処理するための作業が増えました。それは私が期待されていることですか?