作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 UITextView(自定义控件 DALInedTextView)的子类,我在其中绘制线条文本。它在 iOS5 和 iOS6 上完美运行,但在 iOS7 上失败(文本与行不匹配)。
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 1.0f);
if (self.horizontalLineColor)
{
CGContextBeginPath(context);
CGContextSetStrokeColorWithColor(context, self.horizontalLineColor.CGColor);
// Create un-mutated floats outside of the for loop.
// Reduces memory access.
CGFloat baseOffset = 7.0f + self.font.descender;
CGFloat screenScale = [UIScreen mainScreen].scale;
CGFloat boundsX = self.bounds.origin.x;
CGFloat boundsWidth = self.bounds.size.width;
// Only draw lines that are visible on the screen.
// (As opposed to throughout the entire view's contents)
NSInteger firstVisibleLine = MAX(1, (self.contentOffset.y / self.font.lineHeight));
NSInteger lastVisibleLine = ceilf((self.contentOffset.y + self.bounds.size.height) / self.font.lineHeight);
for (NSInteger line = firstVisibleLine; line <= lastVisibleLine; ++line)
{
CGFloat linePointY = (baseOffset + (self.font.lineHeight * line));
// Rounding the point to the nearest pixel.
// Greatly reduces drawing time.
CGFloat roundedLinePointY = roundf(linePointY * screenScale) / screenScale;
CGContextMoveToPoint(context, boundsX, roundedLinePointY);
CGContextAddLineToPoint(context, boundsWidth, roundedLinePointY);
}
CGContextClosePath(context);
CGContextStrokePath(context);
}
if (self.verticalLineColor)
{
CGContextBeginPath(context);
CGContextSetStrokeColorWithColor(context, self.verticalLineColor.CGColor);
CGContextMoveToPoint(context, -1.0f, self.contentOffset.y);
CGContextAddLineToPoint(context, -1.0f, self.contentOffset.y + self.bounds.size.height);
CGContextClosePath(context);
CGContextStrokePath(context);
}
}
我知道这与 UIFont 指标相关。也许有人可以帮助我?我已将contentSize更改为intrinsicContentSize,但它不起作用。
如果我使用 systemFontOfSize 它可以完美工作,但是使用 fontWithName 它会失败。
最佳答案
我已经为这个奇怪的问题苦苦挣扎了一段时间,但最终偶然发现了一个合法的解决方案:
textView.layoutManager.usesFontLeading = NO;
这使得 UITextView
渲染文本(几乎)与 UILabel
相同。
关于ios - iOS7中的内衬UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18855438/
所以我有这个相当奇怪的问题,我正在尝试排列一些 divs但我遇到了这个奇怪的问题。比方说,如果我把 在一个 div 内,并尝试将它与其他 div 排在同一行,无论我尝试什么都行不通,但是如果我向第二个
我是一名优秀的程序员,十分优秀!