Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在UIScrollView中以编程方式调整UITableView的大小,并避免自动布局约束_Ios_Uitableview_Uiscrollview_Resize_Autolayout - Fatal编程技术网

Ios 在UIScrollView中以编程方式调整UITableView的大小,并避免自动布局约束

Ios 在UIScrollView中以编程方式调整UITableView的大小,并避免自动布局约束,ios,uitableview,uiscrollview,resize,autolayout,Ios,Uitableview,Uiscrollview,Resize,Autolayout,我有一个UIScrollView,其中包含一些组件。其中一个控件是UITableView,用于显示电影的时间表列表,最多约7行 我将UITableView设置为不允许任何类型的移动,并以编程方式更改其大小以适应其内容,还增加了UIScrollView的内容大小,以便它可以平滑地滚动 一旦视图显示在屏幕上,调整大小就可以正常工作,但当我滚动UIScrollView查看下面的内容时,UITableView将恢复到以前的大小 请参见下图: 我使用情节提要自动布局设计界面,UITableView有以下限

我有一个UIScrollView,其中包含一些组件。其中一个控件是UITableView,用于显示电影的时间表列表,最多约7行

我将UITableView设置为不允许任何类型的移动,并以编程方式更改其大小以适应其内容,还增加了UIScrollView的内容大小,以便它可以平滑地滚动

一旦视图显示在屏幕上,调整大小就可以正常工作,但当我滚动UIScrollView查看下面的内容时,UITableView将恢复到以前的大小

请参见下图:

我使用情节提要自动布局设计界面,UITableView有以下限制:

下面是我调整控件大小的方法:

- (void) resizeViews {
    //
    // Synopsis
    //
    CGRect synopsisNewFrame = [Utilities adjustLabel:_movieSynopsis frameForText:_movieSynopsis.text];
    [_movieSynopsis setFrame:  synopsisNewFrame];


    //
    // Schedules
    //
    CGRect schedulesNewFrame = CGRectMake(self.tableView.frame.origin.x,
                                      _movieSynopsis.frame.origin.y + _movieSynopsis.frame.size.height + 4,
                                      self.tableView.frame.size.width,
                                      self.tableView.contentSize.height);

    [self.tableView setFrame: schedulesNewFrame];

    //
    // Scroll View
    //

    CGSize scrollSize = CGSizeMake(292, self.tableView.frame.origin.y + self.tableView.frame.size.height + 10);

    [_scrollView setTranslatesAutoresizingMaskIntoConstraints:NO];
    [_tableView setTranslatesAutoresizingMaskIntoConstraints:NO];

    [self.tableView setContentSize: scrollSize];
    [self.tableView setContentOffset:CGPointMake(0, 0)];

} 
这里是我调用resizeView(在ViewController中)的地方:

有没有办法避免这种情况发生

我很确定问题在于具有UITableView的约束

让我提出一个解决方案,在使用自动布局时防止这种情况发生

提前感谢你的帮助


(对不起,我不能发布图片)

我今天遇到了同样的问题。正如您所怀疑的,这是自动布局问题。我现在不知道如何正确地解决它。但是,如果禁用自动布局,就可以了。为此,您可以打开“XIB文件选择文件检查器”选项卡,然后删除“使用自动布局前的检查”

,因为您正在使用自动布局,因此需要调整高度约束


如果要设置与在故事板中所做操作相匹配的scrollView的内容大小,请参阅本文

    [self.scrollView setContentOffset:CGPointZero animated:NO];
    [self.scrollView setContentOffset:CGPointZero animated:NO];