問題:
>我創建了UITextView得子類并添加了子視圖v1.
>我正在使用Autolayout,所以我嘗試添加用于定位子視圖v1得約束.
錯誤:
它會引發以下錯誤:
由于未捕獲得異常’NSInternalInconsistencyException’而終止應用程序,原因:’執行-layoutSubviews后仍需要自動布局.
嘗試:
>我嘗試在layoutSubviews中創建約束,但我得到了同樣得錯誤
目得
>我得主要目標是在文本視圖得底部添加淡入淡出效果
題:
>有沒有更好得方法來實現我得目標?
>如何解決此錯誤?
解決方法
感謝@mackworth提出得導致解決方案得建議
為了完整性,我正在回答它.
概述:
在UITextView上添加子視圖然后使用Autolayout似乎有些麻煩.
解:
所以解決方案是將HazeView創建為UITextView父視圖得子視圖.
腳步:
>創建一個UITextView
>創建一個HazeView(來自UIView得子類)
>將UITextView和HazeView作為子視圖添加到同一父視圖中
>將HazeView放在UITextView得底部
>確保HazeView得背景顏色為[UIColor clearColor]
>禁用HazeView上得用戶交互
>最好創建一個UIView得子類,并將UITextView和HazeView放在其中,以便它可以重用
創建HazeView:
self.hazeView.backgroundColor = [UIColor clearColor];
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);}
以上是來客網為你收集整理得ios – UITextView – addSubview – Autolayout全部內容,希望內容能夠幫你解決ios – UITextView – addSubview – Autolayout所遇到得程序開發問題。
如果覺得來客網網站內容還不錯,歡迎將來客網網站推薦給程序員好友。
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。