感謝@mackworth爲而導致的解決方案
爲了完整性,我回答它的建議。
概述:
似乎有一些麻煩,在UITextView
添加子視圖,然後使用自動佈局。
解決方案:
因此該解決方案是創建HazeView作爲一個子視圖到的UITextView
的父視圖。
步驟:
- 創建
UITextView
- 創建HazeView(亞類從UIView的)
- 作爲子視圖相同的父視圖
- 位置
HazeView
在添加兩UITextView
和HazeView
UITextView
的底部
- 確保背景色HazeView的r是對
HazeView
[UIColor clearColor]
- 禁用用戶交互最好是創建
UIView
一個子類,並把裏面的UITextView
和HazeView
,以便它可以被重用
創建HazeView:
self.hazeView.backgroundColor = [UIColor clearColor];
HazeView
是一個子類210
- (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);
}
看到這裏可能更好的方法:http://stackoverflow.com/questions/12845590/applying-cagradient-mask-layer-to-uitextview – mackworth
謝謝你的建議導致了最終的解決方案 – user1046037