我使用自定义tableviewcell,有3个按钮。
我在自定义单元格中的layoutSubviews方法中设置了按钮的框架:
-(void)layoutSubviews
{
[super layoutSubviews];
CGRect frame;
if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
{
frame = CGRectMake(310, 7, 55, 35);
_prod.frame = frame;
frame = CGRectMake(365, 7, 55, 35);
_leva.frame = frame;
frame = CGRectMake(220, 4, 65, 65);
_imageButton.frame = frame;
}
else{
frame = CGRectMake(150, 7, 55, 35);
_prod.frame = frame;
frame = CGRectMake(205, 7, 55, 35);
_leva.frame = frame;
frame = CGRectMake(120, 4, 65, 65);
_imageButton.frame = frame;
}
}
问题是,当用户滚动表格视图时,在更改方向后,例如,所有按钮都会回显到旧的纵向位置。 以下是我如何初始化细胞:
LojaCell *cell = (LojaCell *) [tableView dequeueReusableCellWithIdentifier: @"LojaCell"];
if(cell == nil) cell = [[LojaCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"LojaCell"];
答案 0 :(得分:0)
您可能必须向cellForRowAtIndexPath添加相同的方向敏感代码:以便在tableview重新加载或重新创建单元格时将它们加载到正确的位置。因为您正在使用dequeueReusableCells,它会删除屏幕外单元格以提高性能,这可能会解释滚动时的行为。