use*_*037 5 uitextview ios autolayout
问题:
UITextView并添加了一个子视图v1.错误:
它会引发以下错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews.
尝试:
layoutSubviews但是我得到了同样的错误目的
题:
感谢 @mackworth 提出的建议,从而找到了解决方案
为了完整起见,我正在回答它。
概述:
UITextView添加子视图然后使用自动布局似乎存在一些问题。
解决方案:
所以解决方案是创建 HazeView 作为 的父视图的子视图UITextView。
脚步:
UITextViewUITextView和HazeView作为子视图添加到同一父视图HazeView位于底部UITextView[UIColor clearColor]HazeViewUIView放入其中,以便可以重用UITextViewHazeView创建 HazeView:
self.hazeView.backgroundColor = [UIColor clearColor];
Run Code Online (Sandbox Code Playgroud)
HazeView是一个子类UIView
- (void)drawRect:(CGRect)rect
{
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = UIGraphicsGetCurrentContext();
UIColor *color1 = [UIColor colorWithRed:1.0 green:1.0
blue:1.0 alpha:0.25];
UIColor *color2 = [UIColor colorWithRed:1.0 green:1.0
blue:1.0 alpha:0.5];
UIColor *color3 = [UIColor colorWithRed:1.0 green:1.0
blue:1.0 alpha:0.75];
NSArray *gradientColors = @[(id) color1.CGColor,
(id) color2.CGColor,
(id) color3.CGColor];
CGFloat gradientLocations[] = {0, 0.50, 1};
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef) gradientColors, gradientLocations);
CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect));
CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect));
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
CGGradientRelease(gradient);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2484 次 |
| 最近记录: |