gpt4 book ai didi

ios - 父 View 调整大小后,tableview 不调整大小

转载 作者:行者123 更新时间:2023-11-29 03:55:01 24 4
gpt4 key购买 nike

我有表格 View 和它下面的几个控件(文本字段、按钮和标签)。

当键盘显示时,我可以降低父 View 高度或向上滑动,以便可以访问我的控件。

这部分工作正常。

但是我也想调整tableview,所以我尝试减小它的高度(如果我减小父 View 的高度)或向下移动origin.y坐标(如果我向上滑动父 View )。

两者都不起作用,即 tableView 不会更改为新框架,它保持不变。仅当我不操作父 View (即,如果我单独调整 tableView 框架)时,Tableview 才会调整大小。

以下是实现此目的的方法:

-(void)resizeTbl:(int)pnts{
CGRect tblframe = self.myTable.frame;
//tblframe.origin.y+=pnts;
tblframe.size.height-=pnts;
self.myTable.frame =tblframe;}


-(void )keyboardWillShow:(NSNotification *)notif{
int pnts=160;
CGRect frame = self.view.frame;
//frame.origin.y-=pnts;
frame.size.height-=pnts;
self.view.frame = frame;
[self resizeTbl:pnts];}

我可能可以将所有控件一一向上移动,然后调整表格大小就可以了,但我认为应该有一种更简单的方法。任何建议将不胜感激。

更新/解决方法:由于表格调整大小单独工作就很好,所以我又添加了一个观察者 - KeyboardDidShow,并将调整大小 myTable 从 KeyboardWilShow 移到那里,以便在键盘启动后处理表格 View 。

-(void)keyboardDidShow:(NSNotification *)notif{
[self resizeTbl:160];}

所以所有的 View 都按照现在应该的方式出现。

但是,当键盘已经打开时焦点从一个文本框移动到另一个文本框时,tableView 会自行调整到其原始框架,我无法捕捉到它何时以及如何执行。然后,当键盘按下时,tableView 会扩展到其原始框架之外,因为我必须有

-(void)keyboardDidHide:(NSNotification *)notif{
[self resizeTbl:-160];}

但是,当焦点再次改变时,tableView 会缩小回正常框架,一切看起来都很好。如果我能以某种方式阻止那些不必要的表格 View 调整大小,从而搞乱事情。

如果有人能够理解这一切,我将非常感激。

更新:

我明白了。自动布局让我很困惑。我把它关掉了like that现在我的逻辑可以正常工作,没有任何故障。

最佳答案

View 的 autoResizingMask 设置为多少?

在初始化 TableView 时尝试此操作。

self.myTable.autoresizingMask = UIViewAutoresizingFlexibleHeight;

这将导致 TableView 随其父 View 一起调整大小。

关于ios - 父 View 调整大小后,tableview 不调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16615296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com