【发布时间】:2014-02-05 00:37:55
【问题描述】:
我有一个视图,其中包含一个设计为水平滚动的 UIScrollView。 (所以 UIScrollView 比 Self.View 宽度宽)
在 UIScrollView 内部,我有十几个 UILables,我让用户循环通过以编程方式添加值,当以编程方式选择下一个 UILable 时,如果它超出范围,我会更改 UIScrollViews 偏移量以确保 UILabel 只出现在视图右侧的左侧。
这就是我当前检查 UILabel 位置然后调整 UILabel 偏移量的方式。
if (positionLabel.frame.origin.x > self.view.frame.size.width)
{
[axisContainerScrollView setContentOffset:CGPointMake(positionLabel.frame.origin.x+40 - self.view.frame.size.width, axisContainerScrollView.frame.origin.y)
animated:YES];
}
else if (positionLabel.frame.origin.x > self.view.frame.size.width)
{
axisContainerScrollView setContentOffset:CGPointMake(0.0, axisContainerScrollView.frame.origin.y)
animated:YES];
}
所以 positionLabel 原点带回了它在 UIScrollView 内的位置值,然后我更改了 axisContainerScrollView 的偏移量。唯一的问题是,如果我滚动视图并选择一个 UILabel,其偏移量已经在视图内,如果将标签发送回右侧..
我想调整这个 if 语句,如果 UILabel 在 self.view 的范围内,那么我不想更改偏移量。
【问题讨论】:
标签: ios objective-c uiview uiscrollview uilabel