
我有UIVIEwController与UITextVIEw栏输入消息和UItableVIEw.
他们在这个约束:“V:| – (64) – [chattable] [sendMessagebar] – (键盘) – |”.
当键盘不出来时,该约束的常数为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,568.5)self.table.subvIEws[0].frame (UItableVIEwWrapperVIEw) = (0.0,0.0,568.5)
当键盘出来时:
self.table.contentSize = (375.0,-274.0,352.5self.table.frame = (0.0,352.5)self.table.subvIEws[0].frame (UItableVIEwWrapperVIEw) = (0.0,-137.5,137.5)self.table.subvIEws[0].frame (UItableVIEwWrapperVIEw) = (0.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,568.5) super.vIEwWillLayoutSubvIEws() println("WrapperVIEw Frame :992: \(self.table.subvIEws[0].frame)") \ WrapperVIEw Frame :992: (0.0,568.5)}overrIDe func vIEwDIDLayoutSubvIEws() { println("WrapperVIEw Frame :6: \(self.table.subvIEws[0].frame)") \ WrapperVIEw Frame :6: (0.0,137.5) super.vIEwDIDLayoutSubvIEws() println(">> vIEwDIDLayoutSubvIEws")} 所以似乎有一些事情会混乱UItableVIEwWrapperVIEw
解决方法 似乎这是一个错误(与这个BUG一起玩了整整一天为我)最后 this解决方法有帮助:
for (UIVIEw *subvIEw in tableVIEw.subvIEws){ if ([NsstringFromClass([subvIEw class]) isEqualToString:@"UItableVIEwWrapperVIEw"]) { subvIEw.frame = CGRectMake(0,tableVIEw.bounds.size.wIDth,tableVIEw.bounds.size.height); }} 总结 以上是内存溢出为你收集整理的ios – UITableViewWrapperView和UITableView大小与autolayout不同全部内容,希望文章能够帮你解决ios – UITableViewWrapperView和UITableView大小与autolayout不同所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)