Вот GIF, иллюстрирующий проблему:Как я могу держать маску UITextView синхронно с рамой
Вот код, который я в настоящее время, это просто округляет две верхние углы UITextView.
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.whiteColor()
let textView = UITextView(frame: CGRectMake(20, 20, self.view.frame.width - 40, 60))
textView.bounces = false
textView.backgroundColor = UIColor.grayColor()
let maskPath = UIBezierPath(
roundedRect: textView.bounds,
byRoundingCorners: (UIRectCorner.TopLeft | UIRectCorner.TopRight),
cornerRadii: CGSizeMake(8, 8)
)
let maskLayer = CAShapeLayer()
maskLayer.frame = textView.bounds
maskLayer.path = maskPath.CGPath
textView.layer.mask = maskLayer
self.view.addSubview(textView)
}
}
Я попытался подклассов UITextView
и первостепенную layoutSubviews
так:
class TextView: UITextView {
var maskLayer: CAShapeLayer!
override func layoutSubviews() {
maskLayer.frame = bounds
}
}
Но заканчивается странным анимации:
Мой вопрос: Как сохранить два в синхронизации?
Чемпион! Спасибо Стюарту. – twe4ked