gpt4 book ai didi

iphone - 当 deviceOrientation 改变时重新加载 UITableView 中的数据

转载 作者:行者123 更新时间:2023-12-03 18:51:54 25 4
gpt4 key购买 nike

我正在使用 UITableView 和 UITableViewCell。我的应用程序支持横向方向,因此我创建了 2 个 UITableViewCell:一个用于纵向,一个用于横向。

在我的 cellForRowAtIndexPath 方法中,这是我的代码

static NSString *CellIdentifier;
static NSString *NibNamed;

UIDeviceOrientation deviceOrientation = [UIApplication sharedApplication].statusBarOrientation;

if (deviceOrientation != UIDeviceOrientationLandscapeLeft &&
deviceOrientation != UIDeviceOrientationLandscapeRight)
{
CellIdentifier= @"Cell1";
NibNamed = @"cell_news";
}
else
{
CellIdentifier= @"Cell2";
NibNamed = @"cell_news_landscape";
}

[[NSBundle mainBundle] loadNibNamed:NibNamed owner:self options:NULL];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:NibNamed owner:self options:nil];
cell = [nib objectAtIndex:0];
}
///here i add title, description, ecc... in my UITableViewCell

然后在 shouldAutorotateToInterfaceOrientation 中我写了这个:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
[my_table reloadData];
return YES;
}

问题出在哪里?如果我以纵向启动应用程序,当我第一次旋转设备时,不会发生任何事情(UITableCellView 是 Portrait_table_cell)。当我第二次旋转设备时(并且我处于纵向或倒置状态),我看到了landscape_table_cell(当然,我看不到所有文本,因为它从屏幕上消失了)。所以..除了第一次,其他时候我旋转设备,我看到错误的table_cell_view!!

你知道为什么吗?谢谢!

最佳答案

您的数据会在设备改变方向之前重新加载。shouldAutorotateToInterfaceOrientation 在任何旋转之前调用。

尝试 didRotateFromInterfaceOrientation

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
[my_table reloadData];
}

另请注意 Jhaliya 给出的答案,因为该解决方案比重新加载表格 View 更好。仅当数据源发生更改时才应重新加载表格 View 。

关于iphone - 当 deviceOrientation 改变时重新加载 UITableView 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5664890/

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