【问题标题】:Changing Bounds of ScrollView shifts its location改变 ScrollView 的边界会改变它的位置
【发布时间】:2014-05-14 06:20:33
【问题描述】:

我有一个滚动视图。我需要添加另一个视图作为此滚动视图的子视图。子视图框架是

(-13,20,200,90)

因此,当将此视图添加到滚动视图时,子视图的原点为负数,子视图的某些部分会被剪裁。

作为解决方案,我尝试设置

[scrollView setClipToBounds:NO]

但这会导致scrollview中的内容溢出scrollview的框架之外。

下一步我尝试像这样更改滚动视图的边界

CGRect rect = container.scroller.bounds;
container.scroller.bounds = CGRectMake(rect.origin.x-205, rect.origin.y, rect.size.width+205, rect.size.height);

但这会将滚动视图的位置向右移动。

基本上我想在 UIScrollview 的可绘制区域之外添加一个项目,而不会剪切子视图。

如何在 IOS 中实现这一点?

【问题讨论】:

  • "但是这会导致滚动视图中的内容溢出到滚动视图的框架之外。" -这不是你想要的吗?
  • 我在滚动视图中有一个文本视图和图像视图。在 imageview 中检测到长按时,我需要显示一个弹出屏幕。根据用户触摸位置,弹出框可以完全出现在滚动视图边界内,也可以出现在左侧或右侧边界之外的弹出框的某些部分。我不希望文本在顶部和底部的边界之外可见。

标签: ios iphone uiview uiscrollview cliptobounds


【解决方案1】:

在 self.view 中添加内容,而不是在 scrollView 中

【讨论】:

    【解决方案2】:

    宽度必须增加为两倍的 x 偏移量。因此,如果要将边界向左移动 205,则必须将宽度增加 410 以使其居中。

    original:
    ----===----
    result:
    ---====----
    intent:
    ---=====---
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多