ios - ScrollView 的水平居中内容

标签 ios uiscrollview autolayout

我在 ScrollView 中嵌入了一个标准 View ,并且我正在使用自动布局。一切正常,我快完成了。只有一个小问题。我的内容 View 具有 536 点的固定高度,因此在 iPhone 6 中它无需滚动即可完全显示,而在 iPhone 4S 中我必须滚动才能查看其他内容。

我的问题是 iPhone 6 的 View 不是水平居中的,所以它在底部显示了额外的空间(为了清晰起见,我用灰色填充了它),如下图所示(即底层 ScrollView ).

scroll view

我的问题是:如何在不弄乱约束的情况下水平居中内容 View ?目前, ScrollView 固定在 View Controller 的四个边框上,内容 View 固定在 ScrollView 的四个边框上。

我很高兴提供您需要的任何其他信息来帮助我解决问题。

编辑:这对我有用

CGFloat superViewHeight = self.view.bounds.size.height;
CGFloat scrollViewHeight = self.scrollView.bounds.size.height;

if (superViewHeight > scrollViewHeight)
    self.topConstraint.constant += (superViewHeight - scrollViewHeight) / 4;

最佳答案

如果您的内容 View 不需要滚动,您应该手动调整顶部约束。

CGFloat scrollViewHeight = CGRectGetHeight(scrollView.bounds);
CGFloat contentViewHeight = CGRectGetHeight(contentView.bounds);

if (scrollViewHeight >= contentViewHeight)
{
    topConstraint.constant += ((scrollViewHeight - contentViewHeight) / 2.f);
}

关于ios - ScrollView 的水平居中内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32474928/

相关文章:

javascript - 以编程方式在 WebView 中以全屏方式打开 youtube 视频的 iframe - iOS

ios - 带有 FCM token 的设备的 Firebase 通知显示已发送但未收到

ios - ScrollView 的奇怪顶部间距

ios - 自动布局 - 中间有 5 个按钮

iOS - 如何使用 AutoLayout 垂直排列多个组件?

ios - 我的 IOS 应用程序已被拒绝 - 数据存储指南 (2.23) 我有 2 个可能的嫌疑人

ios - 我的xcode项目是否在复制自己?

ios - 如何在 UIscrollView 中获取当前控制位置?

ios - UIPageViewController 带有一张固定的背景图片

ios - 如何在 ScrollView 中将图像置于最前面