我正在建立一個聊天。一切似乎都很好,但我碰到了一種'越野車'的問題。UITableViewWrapperView和UITableView的大小因自動佈局而異
我得到UIViewController與UITextView欄輸入消息和UITableView。 他們在這個約束:"V:|-(64)-[chatTable][sendMessageBar]-(keyboard)-|"
。 當鍵盤沒有出來時 - 這個約束的常量是0
。和鍵盤出來後 - 我增加常數鍵盤高度。
當鍵盤不出來:
self.table.contentSize = (375.0,78.5)
self.table.bounds = (0.0,-490.0,375.0,568.5)
self.table.frame = (0.0,64.0,375.0,568.5)
self.table.subviews[0].frame (UITableViewWrapperView) = (0.0,0.0,375.0,568.5)
self.table.subviews[0].frame (UITableViewWrapperView) = (0.0,0.0,375.0,568.5)
當鍵盤出來:
self.table.contentSize = (375.0,78.5)
self.table.bounds = (0.0,-274.0,375.0,352.5
self.table.frame = (0.0,64.0,375.0,352.5)
self.table.subviews[0].frame (UITableViewWrapperView) = (0.0,-137.5,375.0,137.5)
self.table.subviews[0].frame (UITableViewWrapperView) = (0.0,0.0,375.0,137.5)
所以UITableViewWrapperView,之後我增加限制不變,不同的尺寸,以它的父 - 的UITableView 。有沒有辦法來解決這個問題 ?我會假設UITableViewWrapperView
將根據UITableView
更改其框架和邊界,但它不會。
任何想法是哪裏的問題或我該如何解決它?
補充說:
一些調查研究後 - 它似乎viewWillLayoutSubviews
和viewDidLayoutSubviews
之間的某處發生。這是有點怪異壽:
override func viewWillLayoutSubviews() {
println("WrapperView Frame :991: \(self.table.subviews[0].frame)") \\ WrapperView Frame :991: (0.0,0.0,375.0,568.5)
super.viewWillLayoutSubviews()
println("WrapperView Frame :992: \(self.table.subviews[0].frame)") \\ WrapperView Frame :992: (0.0,0.0,375.0,568.5)
}
override func viewDidLayoutSubviews() {
println("WrapperView Frame :6: \(self.table.subviews[0].frame)") \\ WrapperView Frame :6: (0.0,-137.5,375.0,137.5)
super.viewDidLayoutSubviews()
println(">> viewDidLayoutSubviews")
}
如此看來,有事有沒有攪亂UITableViewWrapperView
它不是蘋果的禁止API之一嗎? (UITableViewWrapperView) – 2015-09-22 04:27:11
這是禁止或不。我需要使用它。但害怕。 – anamika41 2017-12-28 09:55:25