私はしばらくの間、この問題の解決策を探していましたが、誰も同様の問題に遭遇したようには見えません。
基本的に、いくつかの EKEvent.notes からアドレス、URL、電話番号など (UIDataDectorTypeAll を介して検出できるもの) を検出するために使用する複数の UITextViews があります。次に、これらの UITextView を UIScrollView のサブビューとして追加します。
さて、何らかの理由で、UITextView が住所または電話番号を検出し、実行可能なターゲットになると、指定されたフォントの 2 倍のフォントでランダムに描画されます!
タップするとビューを再描画するようにテストをセットアップしました。UITextView が最初にビューに追加されると、適切なテキストが黒で表示されます。その後、検出処理を実行し、実行可能なターゲットになります。適切なサイズのままである場合もあれば、2 倍のフォントで描画される場合もあります (ただし、適切なフレーム内にあるため、クリップされます)。
非常に簡単ですが、以下に私のコードを示します。すべての変数が正しい値で、フレームが正しく、テキストが正しく、すべてが正しく、約 50% の確率で正しく描画されます。それ以外の 50% の時間は (明らかに) 2x フォントになります! どんな助けでも大歓迎です!
UITextView *locationTextView = [[UITextView alloc] init];
locationTextView.dataDetectorTypes = UIDataDetectorTypeAll;
locationTextView.text = location;
locationTextView.font = [UIFont fontWithName:@"AvenirNext-Regular" size:17];
locationTextView.editable = NO;
locationTextView.userInteractionEnabled = YES;
locationTextView.contentInset = UIEdgeInsetsMake(-8,-8,-8,-8);
locationTextView.frame =CGRectMake(kBufferLeft, daySize.height, kBufferDayViewTextWidth, locationSize.height);
[scrollView addSubview:locationTextView];
正: http://i.imgur.com/3pJ43kj.jpg
不正解: http://i.imgur.com/DLq4gco.jpg
(まだ画像の投稿は許可されていません。申し訳ありません。)
まったく同じコードで両方の効果が得られました。お時間をいただきありがとうございます。
乾杯!
編集:この問題を修正するために TTTAttributedLabels を使用しました。
github.com/mattt/TTTAttributedLabel