我一直在寻找解决这个问题的方法,似乎没有人遇到过类似的问题。
基本上,我有多个 UITextView,用于从一些 EKEvent.notes 中检测地址、url、电话号码等(可以通过 UIDataDectorTypeAll 检测到的任何内容)。然后我将这些 UITextViews 添加为 UIScrollView 的子视图。
现在,出于某种原因,一旦 UITextView 检测到地址或电话号码并成为可操作的目标,它将随机绘制 2 倍于其指定字体的字体!
如果我点击,我已经设置了测试来重绘我的视图。当 UITextView 最初添加到视图中时,我可以看到正确的黑色文本。然后它进行检测交易并成为可操作的目标。有时它保持正确的大小,有时它以 2x 字体绘制(但仍然在正确的框架中,因此它被剪裁了)。
这非常简单,但这是我的代码。所有变量都是正确的值,框架是正确的,文本是正确的,一切都是正确的,大约 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