Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.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/3/apache-spark/5.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 3.5英寸和iPhone 4英寸显示屏(UIScrollView)_Iphone_Ios_Objective C_Uiscrollview - Fatal编程技术网

处理iPhone 3.5英寸和iPhone 4英寸显示屏(UIScrollView)

处理iPhone 3.5英寸和iPhone 4英寸显示屏(UIScrollView),iphone,ios,objective-c,uiscrollview,Iphone,Ios,Objective C,Uiscrollview,我很难设计一个同时适合3.5英寸iphone和5英寸iphone(模拟器)的布局。我检查了自动布局,所有的布局都很完美。但是,我现在需要使用UIScrollView,因此需要取消选中“自动布局”以使用 另外,当使用iPhone4英寸显示屏查看布局时,它会在UIScrollView的顶部增加约60像素 是否有更好的方法(设置scrollview而不取消选择自动布局)?所以我可以支持iPhone4 //to set up the scrollview [self.scrollView setScro

我很难设计一个同时适合3.5英寸iphone和5英寸iphone(模拟器)的布局。我检查了自动布局,所有的布局都很完美。但是,我现在需要使用UIScrollView,因此需要取消选中“自动布局”以使用

另外,当使用iPhone4英寸显示屏查看布局时,它会在UIScrollView的顶部增加约60像素

是否有更好的方法(设置scrollview而不取消选择自动布局)?所以我可以支持iPhone4

//to set up the scrollview
[self.scrollView setScrollEnabled:YES];
[self.scrollView setContentSize:CGSizeMake(320, 800)];

但是,在我取消选中自动布局之前,它不会滚动。有更好的方法吗?

UIScrollView
使用Autolayout时略有不同。你需要做一些修改。您的答案是。

您可以对您的
UIScrollView框架执行类似操作。根据下面的CGRect为scrollview分配帧

CGRect rect=[[UIScreen mainScreen] bounds];
希望,这对您有用。

尝试自动调整大小

 self.scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin);
试试这个(它解决了我的问题):


参考资料:

为了更好地理解,请将您的问题的屏幕截图放在这里。
UIScrollView,因此需要取消选中“自动布局”以使用
这是为什么?@ArkadiuszHolko由于某种原因,如果不取消选中“自动布局”,滚动视图将无法滚动。不过,我可能做错了。@Gman添加了更多的代码,并将屏幕截图放在屏幕上,以便理解更多的内容。@Gman没有其他代码,我使用故事板连接scrollview,并将其高度设置为大于视图本身,即800h。感谢您的评论,我尝试实现了建议的内容,但我觉得有点迷路了,我创建了一个子视图并将其添加到scrollview中,而不是将uiElements添加到它
[scrollview addConstraint:[NSLayoutConstraint constraintWithItem:lastSubView属性:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual-toItem:scrollView属性:NSLayoutAttributeRight乘数:1.0常量:0]];
现在是否使用自动布局?选中自动布局?如果使用自动布局,是否添加了
翻译自动调整大小GMaskintoConstraints=NO;
?我使用的是自动布局,但我没有使用
翻译自动调整大小GMaskintoConstraints=NO;
,这会起作用吗?请进一步解释一下?
scrollView addConstraint:[NSLayoutConstraint constraintWithItem:lastSubView
                                         attribute:NSLayoutAttributeRight
                                         relatedBy:NSLayoutRelationEqual
                                            toItem:scrollView
                                         attribute:NSLayoutAttributeRight
                                        multiplier:1.0
                                          constant:0]];