Я создал UITableView
с ячейками, которые содержат довольно большое количество объектов UIView
. Однако, когда я выбираю ячейку, она не кажется гладкой при запуске segue. Второе замечание состоит в том, что если я быстро дважды коснусь ячейки, он будет запускать сеанс дважды (дважды нажмите кнопку).UITableViewCell медленно реагирует на ответвление
Что может вызывать такое поведение? Я использую телефон в качестве тестовой среды, и все остальные приложения закрыты.
override func viewDidLoad() {
super.viewDidLoad()
//PickerView
self.pickerView.delegate = self
self.pickerView.dataSource = self
self.pickerView.interitemSpacing = 60
self.pickerView.backgroundColor = UIColor(hexString: "#1C1F27")
self.pickerView.textColor = UIColor(hexString: "#D8D8D8").colorWithAlphaComponent(0.4)
self.pickerView.highlightedTextColor = UIColor.whiteColor()
self.pickerView.font = UIFont(name: "MavenProRegular", size: 12)!
self.pickerView.highlightedFont = UIFont(name: "MavenProRegular", size: 12)!
self.pickerView.pickerViewStyle = .StyleFlat
self.pickerView.maskDisabled = false
self.pickerView.reloadData()
//Tableview
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
self.tableView.delegate = self
self.tableView.dataSource = self
self.tableView.backgroundColor = UIColor.clearColor()
//ActivityIndicator
self.refreshControl = UIRefreshControl()
self.refreshControl.tintColor = UIColor.whiteColor().colorWithAlphaComponent(0.4)
self.refreshControl.addTarget(self, action: "refresh", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refreshControl)
}
//TABLEVIEW METHODS
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 140
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MatchCell", forIndexPath: indexPath) as UITableViewCell
cell.backgroundColor = UIColor.clearColor()
cell.selectionStyle = UITableViewCellSelectionStyle.Default
let backgroundSelectionView = UIView(frame: cell.bounds)
backgroundSelectionView.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.05)
cell.selectedBackgroundView = backgroundSelectionView
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.performSegueWithIdentifier("CameraController", sender: self)
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
Возможно, ваш CameraController занимает немного больше времени для загрузки, попробуйте перевести его в обычный диспетчер просмотра и посмотрите, плавно ли он. – Surely
, так что если это проблема, каково будет решение? помещать вещи в фоновый поток? –
Это зависит от того, что вы пытаетесь сделать. В общем, я думаю, вы можете попытаться переместить свой код в viewDidLoad в viewDidAppear, если это не обязательно в viewDidLoad. – Surely