Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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
iPhone UIScrollView如何正确缩放视图?目前为';s的高度调整不当_Iphone_Objective C_Uitableview_Uiscrollview - Fatal编程技术网

iPhone UIScrollView如何正确缩放视图?目前为';s的高度调整不当

iPhone UIScrollView如何正确缩放视图?目前为';s的高度调整不当,iphone,objective-c,uitableview,uiscrollview,Iphone,Objective C,Uitableview,Uiscrollview,我在UIScrollView中有一个UITableView。我花了不少功夫才把它弄好 表格视图是640x350,我使用滚动视图从单元格的一端滚动到下一端。 滚动视图为320x350。 滚动视图的内容大小为640x350 我遇到了这个问题: 如果我将scrollView的最小缩放比例设置为0.5,则tableview的宽度现在会填满屏幕,但其高度仅为屏幕的一半当我缩小到0.5时,我希望tableview显示更多行。 首先,我想了解这是正确的行为,还是tableView的内容大小和帧操作的结果。ta

我在UIScrollView中有一个UITableView。我花了不少功夫才把它弄好

表格视图是640x350,我使用滚动视图从单元格的一端滚动到下一端。 滚动视图为320x350。 滚动视图的内容大小为640x350

我遇到了这个问题: 如果我将scrollView的最小缩放比例设置为0.5,则tableview的宽度现在会填满屏幕,但其高度仅为屏幕的一半当我缩小到0.5时,我希望tableview显示更多行。

首先,我想了解这是正确的行为,还是tableView的内容大小和帧操作的结果。tableview在interface builder中设置了所有弹簧和支柱,并应填充可用的框架。这是我几个月来第一次尝试缩放,我不记得它是如何与缩放一起工作的

有人能帮我了解我需要调整的地方和内容吗?

据我所知,我需要将代码放入
scrollViewDidZoom:
中,以操纵tableView的框架和内容大小


另外,我正在从视图返回tableview以进行缩放:UIScrollView的方法您试图实现的是相当困难的

解决方案1此解决方案使用您的精确设置(UIScrollView内部的UITableView)

您说,当您将zoomScale设置为0.5时,您希望您的表视图垂直填充滚动视图。在0.5时,您的表视图必须为640x700,以便按照您的意愿填充UIScrollView。为此,在
scrollViewDidZoom:
上,必须将表视图的框架调整为640x700


- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
    // No matter what the zoomScale is, the tableView will be zoomed accordingly
    // Only zoom the height of the table
    tableView.frame = CGRectMake(0, 0, 640, 350 / zoomScale);

    // Also, update the contentSize
    scrollView.contentSize = CGSizeMake(640, 350 / zoomScale);
}
如果为
zoomScale=0.5
运行上述代码,则帧大小将为640x700

这只会更改表格的边框,而不会更改单元格的高度。这意味着,当您缩小时,在表格视图中还会看到更多的单元格

解决方案2仅使用UITableView

UITableView是UIScrollView的一个子类。这意味着它具有缩放和滚动的能力

从屏幕上所需大小的UITableView开始。然后,在加载内容后,修改contentSize并使其比您的帧宽。这将启用水平滚动


但是,UITableViewCell的边框会自动设置为tableview边框的宽度。您可以使用自定义UITableViewCell,使用
clipsToBounds=false
,绕过此设置。在其中,您将插入一个UIView,边框设置为所需的宽度和高度,并且没有自动重新设置大小的任务。当tableview将重新调整UITable的大小时eViewCell框架,这不会影响您的内部UIView。

您是否知道
UITableView
已经是
UIScrollView
的一个子类?您是否尝试过使用
UITableView
本身而不是在另一个
UIScrollView
中执行此操作?是的,我知道。使表视图水平滚动是一个主要的问题ain,我很高兴有一个正在运行的设置。我建议您使用tableView的transform属性。您不需要使用scrollView。