根據日期加載背景漸變時,我有一個奇怪的行爲。 我的代碼應該根據現有日期更改uitableviewcell的背景漸變。如果日期過去,背景漸變變爲紅色,現在變爲黃色,未來日期變爲綠色。 到目前爲止,獲取正確狀態/漸變(紅/黃/綠)的代碼有效並將顯示在控制檯中。不幸的是不在模擬器/ iPad中。 插入使用UITableViewCell加載錯誤CAShapeLayer
cell.layer.insertSublayer(gradient, atIndex: 0)
這裏開始怪異的行爲背景漸變IM。加載接下來的幾個單元格時,背景漸變將隨機變爲紅色/黃色/綠色。 事實上,當我使用,
cell.layer.addSublayer(gradient)
梯度會正確顯示根據日期,但標籤奧特萊斯將不再顯示
UITableViewCell:
import UIKit
class TaskUITVCell: UITableViewCell {
@IBOutlet weak var appointment: UILabel!
@IBOutlet weak var title: UILabel!
@IBOutlet weak var creator: UILabel!
@IBOutlet weak var assignedTo: UILabel!
@IBOutlet weak var btnBookingCustomer: UIButton!
var type:String = "-"
var value:Int = 0
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
@IBAction func btnclicked(sender: AnyObject) {
//TODO open User/Booking
print("Type: \(self.type) Value: \(self.value)")
}
}
類TaskUITVC:的UITableViewController
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("TaskUITVCell", forIndexPath: indexPath) as! TaskUITVCell
let due = overdueToActualDate(self.taskArray[indexPath.row])
let gradient = Gradients().cellNormal(cell.bounds, tint: due)
cell.layer.addSublayer(gradient)
self.dateFormat.dateStyle = NSDateFormatterStyle.MediumStyle
cell.title.text = self.taskArray[indexPath.row].title
//Apointment Date
cell.appointment.text = self.dateFormat.stringFromDate(self.taskArray[indexPath.row].date)
//Button: to choose correct type to open specific view controller
if (String(taskArray[indexPath.row]) == "TaskModel"){
cell.btnBookingCustomer.hidden = true
}
if (String(taskArray[indexPath.row]) == "CustomerTaskModel"){
cell.btnBookingCustomer.setTitle("Customer: \((self.taskArray[indexPath.row] as! CustomerTaskModel).customer_number)", forState: .Normal)
cell.type = String(taskArray[indexPath.row])
cell.value = (self.taskArray[indexPath.row] as! CustomerTaskModel).customer_number
}
if (String(taskArray[indexPath.row]) == "BookingTaskModel"){
cell.btnBookingCustomer.setTitle("Booking: \((self.taskArray[indexPath.row] as! BookingTaskModel).booking_id)", forState: .Normal)
cell.type = String(taskArray[indexPath.row])
cell.value = (self.taskArray[indexPath.row] as! BookingTaskModel).booking_id
}
return cell
}
希望有人對此問題有建議
編輯:從兩種方法中添加行爲的屏幕截圖 方法insertSublayer顯示文本,但背景漸變是錯誤的。 Methode addSublayer按預期顯示漸變,但沒有文字 Pic: left side addSublayer, right side insertSublayer at the same indexPath.row
不知何故,方法insertSublayer中的漸變模式重複。 也許這是一些指導問題?