Tôi đã tạo một thanh tiến trình sẽ được sử dụng trong một tableView bằng cách tạo một lớp gradient. Nó hoạt động hoàn hảo.CALayer không thay đổi kích thước với Autolayout
iPhone5:
Để sử dụng ứng dụng trên nhiều thiết bị, tôi đã tạo ra UIView trong Storyboard, tagged nó và thêm ràng buộc. Tuy nhiên, khi tôi sử dụng ứng dụng trên iPhone 6, CALayer không thay đổi kích thước.
iPhone6:
tôi thấy vô cùng ngu ngốc, nhưng không bao giờ tâm trí này. Tôi đã nhìn xung quanh và cố gắng để hiểu làm thế nào để giải quyết điều này trong nhiều tháng, nhưng tôi đã đi lên ngắn. ANYONE có biết cách thay đổi kích thước CALayers bằng UIView không? Bất kỳ trợ giúp sẽ được rất nhiều đánh giá cao ! Cảm ơn bạn.
progressBar = cell.contentView.viewWithTag(3) as UIView!
progressBar.layer.cornerRadius = 4
progressBar.layer.masksToBounds = true
// create gradient layer
let gradient : CAGradientLayer = CAGradientLayer()
// create color array
let arrayColors: [AnyObject] = [
UIColor (red: 255/255, green: 138/255, blue: 1/255, alpha: 1).CGColor,
UIColor (red: 110/255, green: 110/255, blue: 118/255, alpha: 1).CGColor]
// set gradient frame bounds to match progressBar bounds
gradient.frame = progressBar.bounds
// set gradient's color array
gradient.colors = arrayColors
//Set progress(progressBar)
var percentageCompleted = 0.6
gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
gradient.locations = [percentageCompleted, percentageCompleted]
gradient.endPoint = CGPoint(x: 1, y: 0.5)
// replace base layer with gradient layer
progressBar.layer.insertSublayer(gradient, atIndex: 0)
Cảm ơn bạn rất nhiều - nó hoạt động hoàn hảo. Bạn trả lời xong, giải pháp thanh lịch và nó giải quyết được vấn đề của tôi. Hôm nay tôi sẽ tìm hiểu về awakeFromNib và willSet. Cám ơn bạn một lần nữa! (Oh và tôi thụt dòng đầu tiên và cuối cùng của khối đầu tiên của mã và instantiated ProgressBar bằng cách thêm chúng) – KML