0
我有一個基於Swift 2.0(和自動佈局)的項目。我正嘗試用簡單的擴展器控件構建視圖控制器。用戶點擊標題位,即可顯示選項表。UITableViewCell在展示過程中有不一致的UIView動畫
它的工作原理,但最初的揭示有一點點奇怪。用戶第一次點擊它按預期擴展的標題,但表格內容從左側輕微滑入。在隨後的點擊中,它沒有這種額外的動畫。
如果可以,我想消除這種輕微的「滑入」。然而,我對這一點已經足夠新了,以至於我不完全明白我做錯了什麼。搜索谷歌和SO已被證明令人沮喪。我不認爲我知道正確的術語來解釋發生了什麼。
我已經包含示例代碼,說明我在做什麼。我還包括一個動畫,以便您可以看到發生了什麼。謝謝!
代碼:
import UIKit
class ViewController: UIViewController, UITableViewDataSource {
@IBOutlet weak var tableViewHeight: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableViewHeight.constant = 0
}
@IBAction func openTable(sender: AnyObject) {
if tableViewHeight.constant == 0 {
tableViewHeight.constant = 220
} else {
tableViewHeight.constant = 0
}
UIView.animateWithDuration(0.3, animations: {
self.view.layoutIfNeeded()
})
}
// MARK: tableView stuff
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 3 }
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.textLabel?.text = "Cell \(indexPath.item)"
return cell
}
}
圖片:
所以這主要回答了我的問題。我所做的是在layoutIfNeeded調用之前使用UIView.setAnimationsEnabled(false)禁用UIView動畫,然後再打開它們。 – hernan43
@ hernan43很樂意幫忙。 – glm4