if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
{
//Landscape mode.
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) //Frame for iPad
{
[deleteButton setFrame:CGRectMake(984, 7, 30, 30)];
[editButton setFrame:CGRectMake(944, 7, 30, 30)];
}
else
{
if ([[UIScreen mainScreen] bounds].size.height==568)
{
[deleteButton setFrame:CGRectMake(530, 10, 30, 30)]; //Frame for iPhone
[editButton setFrame:CGRectMake(490, 10, 30, 30)];
}
else
{
[deleteButton setFrame:CGRectMake(440, 10, 30, 30)]; //Frame for iPhone
[editButton setFrame:CGRectMake(400, 10, 30, 30)];
}
}
}
else
{
//Portrait mode.
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) //Frame for iPad
{
[deleteButton setFrame:CGRectMake(730, 7, 30, 30)];
[editButton setFrame:CGRectMake(690, 7, 30, 30)];
}
else
{
[deleteButton setFrame:CGRectMake(280, 7, 30, 30)]; //Frame for iPhone
[editButton setFrame:CGRectMake(240, 7, 30, 30)];
}
}
[cell.contentView addSubview:editButton]; //Added button subview to cell.
[cell.contentView addSubview:deleteButton];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell; //This code is being executed perfectly in iOS 6 also.
我正在开发一款通用应用。但是当我运行应用程序时,在iOS 7中它运行得非常好,在iOS 6的情况下,自定义编辑&加载屏幕时第一次出现删除按钮。但是当我改变方向时,它会从屏幕上消失。我在更改方向时重新加载表视图,但它仍然消失。任何人都可以帮助我。深入了解项目的最后一点。
答案 0 :(得分:0)
假设此代码位于tableView:cellForRowAtIndexPath:
,您只需将deleteButton
和editButton
作为单元格的子视图添加到表格必须创建新单元格(例如,在滚动期间,方向更改,或致电-reloadData
)。由于单元格被重用,因此当您在另一个单元格上调用[cell.contentView addSubview:editButton]
时,您很可能会遇到从子视图中删除按钮的情况。因此,按钮frame
可能是正确的,但只是在表格中的另一个单元格中。
如果您发布完整的tableView:cellForRowAtIndexPath:
以及创建按钮的位置,那么我可以帮您修复它。