UIScrollView中的UIView不调整宽度
UIView in UIScrollView does not adjust width
我一直在搜索 Whosebug 和 google 提出的任何建议,但我无法让它工作。我打算在滚动视图中绘制一个简单的二维图形,我的数据点之间的距离是 kStepX
并且我希望滚动视图至少是屏幕的宽度,如果我有更多的数据点它应该滚动但不会更多超过 100 分。
我认为我的自动版式和调整 contentWidth 有问题,所以这是我目前所做的:
- 我添加了一个具有以下约束的 UIScrollView:
- 带领 Space 进入 Superview =0
- 顶部 space 到超级视图 =0
- 高度 = 父视图的宽度
- Width = 父视图的宽度
- 然后我添加了一个 UIView(称为 GraphView)作为具有以下约束的子项:
- 滚动视图的所有 4 个边界为零 space
- 以滚动视图为中心的 X 和 Y 中心
在我的 GraphViewController 中,我将 contenSize 设置为:
historyScrollView.contentSize = CGSizeMake(MAX(SCREEN_WIDTH,sizeof(data)*kStepX), kGraphHeight);
但它不滚动!
如果我在情节提要中设置固定宽度,则滚动视图滚动得比我的数据更远..
我做错了什么?
将 ScrollView 放在主视图的一侧,并提供 Top
、Bottom
、Leading
、Trailing
、Center X
和 Center Y
.
将 GraphView
带入你的体内 scrollview
并设置 GraphView
的约束。
设置GraphView
的高度
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *HeightGraphView;
当您设置 HeightGraphView
然后自动设置 ScrollView contentSize。
查看我的演示,它适用于垂直滚动,同样适用于水平滚动。
使用自动布局时,您不应设置 scrollView
的 contentSize
。如果设置正确,那应该根据您的约束计算得出。
您缺少的是在 scrollView 内的视图上设置宽度和高度限制。 scrollView
根据子视图的大小确定它是 contentSize
。由于 UIView
没有固有大小,您需要为其添加 width
和 height
约束,然后在需要时使用正确的值
更新它
像这样的东西应该可以工作:
innerViewWidthConstraint.constant = MAX(SCREEN_WIDTH,sizeof(data)*kStepX)
innerViewHeightConstraint.constant = kGraphHeight
// You might need to layout the views too
[historyScrollView layoutIfNeeded]
希望对您有所帮助!祝你好运:)
我一直在搜索 Whosebug 和 google 提出的任何建议,但我无法让它工作。我打算在滚动视图中绘制一个简单的二维图形,我的数据点之间的距离是 kStepX
并且我希望滚动视图至少是屏幕的宽度,如果我有更多的数据点它应该滚动但不会更多超过 100 分。
我认为我的自动版式和调整 contentWidth 有问题,所以这是我目前所做的:
- 我添加了一个具有以下约束的 UIScrollView:
- 带领 Space 进入 Superview =0
- 顶部 space 到超级视图 =0
- 高度 = 父视图的宽度
- Width = 父视图的宽度
- 然后我添加了一个 UIView(称为 GraphView)作为具有以下约束的子项:
- 滚动视图的所有 4 个边界为零 space
- 以滚动视图为中心的 X 和 Y 中心
在我的 GraphViewController 中,我将 contenSize 设置为:
historyScrollView.contentSize = CGSizeMake(MAX(SCREEN_WIDTH,sizeof(data)*kStepX), kGraphHeight);
但它不滚动! 如果我在情节提要中设置固定宽度,则滚动视图滚动得比我的数据更远..
我做错了什么?
将 ScrollView 放在主视图的一侧,并提供 Top
、Bottom
、Leading
、Trailing
、Center X
和 Center Y
.
将 GraphView
带入你的体内 scrollview
并设置 GraphView
的约束。
设置GraphView
的高度
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *HeightGraphView;
当您设置 HeightGraphView
然后自动设置 ScrollView contentSize。
查看我的演示,它适用于垂直滚动,同样适用于水平滚动。
使用自动布局时,您不应设置 scrollView
的 contentSize
。如果设置正确,那应该根据您的约束计算得出。
您缺少的是在 scrollView 内的视图上设置宽度和高度限制。 scrollView
根据子视图的大小确定它是 contentSize
。由于 UIView
没有固有大小,您需要为其添加 width
和 height
约束,然后在需要时使用正确的值
像这样的东西应该可以工作:
innerViewWidthConstraint.constant = MAX(SCREEN_WIDTH,sizeof(data)*kStepX)
innerViewHeightConstraint.constant = kGraphHeight
// You might need to layout the views too
[historyScrollView layoutIfNeeded]
希望对您有所帮助!祝你好运:)