まいちはシステム屋さん

do not think, just feel


テーマ:
ぷん!!!ぷんぷん!!!怒怒怒

文章が表示されるところで、うちはなるべくUILabelで済ませたい派なんだけど、
長押しでコピーしたり、リンクをリンクとして使いたいという要望がでたので、
もともとすべて UILabelで作ってたところを、すべてUITextView に書き換えたわけですよむっ


ところが!!
結論ゆーと、UITextView の tail にはバグがある!!ううっ...

NSLineBreakByTruncatingTail を使うときに、まず以下のソースのとき

// ラベル
UILabel *label = [[UILabel alloc] init];
label.textAlignment   = NSTextAlignmentLeft;
label.numberOfLines = 2;
label.lineBreakMode  = NSLineBreakByTruncatingTail;
label.backgroundColor = [UIColor yellowColor];
label.text = @"改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト"; 
[self.view addSubview:label];


// テキストビュー    
UITextView *textView = [[UITextView alloc] init];
textView.backgroundColor    = [UIColor yellowColor];
textView.editable           = NO;
textView.scrollEnabled      = NO;
textView.textContainerInset = UIEdgeInsetsZero;
textView.textAlignment      = NSTextAlignmentLeft;
textView.dataDetectorTypes  = UIDataDetectorTypeLink;
textView.textContainer.lineFragmentPadding = 0;
textView.textContainer.lineBreakMode = NSLineBreakByTruncatingTail;
textView.textContainer.maximumNumberOfLines = 2;
 textView.text = @"改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト";
[self.view addSubview:textView];

tail

ちゃんと最後が...になるあひる

しかしですよ、、

label.text = @"改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト\n改行テスト改行テスト改行テスト改行テスト";

textView.text = @"改行テスト改行テスト改行テスト改行テスト改行テスト改行テスト\n改行テスト改行テスト改行テスト改行テスト";

改行テストの途中に改行を挿入すると、、

tail失敗

なんとUITextViewだと、...がつかない。
ソースの順番変えたりオプション減らしたりいろいろしたけど、だめだったガクリ

結果、UITextViewとUILabelでコピー必須のところだけ出し分けするはめに○| ̄|_

こーゆー次のOSでたら解消されてそうなバグの処理かくのめっちゃいやなんだなー猫



※ちなみに、UILabelでも attributedText を使ったとたんに  UITextViewとおなじく、
最後が改行のとき...が表示されません。

これは痛い。。。
これが必要なところにまいちむは、いったんただのtextで...にされるように書いた上に、
背景透明のボタンなりラベルなりをattributeしたい箇所にぴったりのせるという
強行手段をとりました。



そして出し分けたまいちむキティちゃん
そうしたら今度は、省略時は「...」 じゃなくて、facebookみたいに、
「...続きを読む」にしたいと。
あ、Labelのとこだけね!


一瞬ちょっと大変そうだなと思ったものの、好奇心が勝ってやってみますと言ってしまったドラえもんキラキラ


まーぐぐったらあるっしょーと思ったんだけど、意外と見つからず、
結局つくりましたマイメロあせ
なんでこんなのないのかって簡単だからだれもあげないのかな、、

割りとめんどくさかったのに矢矢
というわけで一応のせておこう嬉しい

文字数オーバーしちゃったので、次の記事で!


エンジニアってほんと知識ってより、ロジック考えるしごつだなーリラックマリラックマ

なのになんで世の中の特に女子たちは、コード書くことにそんな拒否反応をしめすんだろう、、

こんなキャピキャピ書けるのにねっぺこWハート



キーワード:UITextView UILabel バグ  NSLineBreakByTruncatingTail numberOfLines lineBreakMode iOS Xcode facebook ... 続きを読む See More


AD
いいね!した人  |  コメント(1)  |  リブログ(0)

まいちさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。