0

我只是尝试创建自己的布局。我用于UITableView我的UIViewController. 我有一些来自服务器的 JSON 响应。这就像详细的出版物。我还计算我的UITableViewCell身高,因为我的出版物包含图像和文字的混合。我编写了自己的布局并在设备旋转时重新计算。

for (UIView * sub in contentSubviews) {
    if([sub isKindOfClass:[PaddingLabel class]])
    {
        PaddingLabel *textPart = (PaddingLabel *)sub;
        reusableFrame = textPart.frame;
        reusableFrame.origin.y = partHeight;
        partHeight += textPart.frame.size.height;
        [textPart setFrame:reusableFrame];            
    } else if([sub isKindOfClass:[UIImageView class]])
    {
        UIImageView * imagePart = (UIImageView *)sub;
        reusableFrame = imagePart.frame;
        reusableFrame.origin.y = partHeight;
        reusableFrame.origin.x = screenWidth/2 - imageSize.width/2;
        reusableFrame.size.width = imageSize.width;
        reusableFrame.size.height = imageSize.height;
        [imagePart setFrame:reusableFrame];
        partHeight += imagePart.frame.size.height;
    }
}

但我有一些问题。当设备更改方向时,状态UIScrollView偏移量与原来相同。我不知道如何改变它。旋转前:

在此处输入图像描述

旋转后:

在此处输入图像描述

我想在矩形中保存可见元素。建议请。

4

1 回答 1

0

有几种选择,具体取决于您希望在旋转后显示的内容。一种可能的解决方案是在旋转之前获取 contentOffset.y/contentSize.height,然后将其乘以新的 contentSize.height 以得出新的 contentOffset.y。或者,如果您希望在旋转前后保持特定元素可见,请获取 element_view.frame.origin.y 和 contentOffset.y 之间的差异,然后将新的 contentOffset.y 设置为 element_view.frame.origin.y + 差异。

于 2013-07-29T23:05:03.703 回答