【问题标题】:Custom UIView with smaller bounds than frame边界小于框架的自定义 UIView
【发布时间】:2011-03-31 21:28:52
【问题描述】:

是否可以创建边界小于框架的自定义 uiview(从 nib 加载)。所以我想展示框架/视图的一部分。在按下按钮时,我想将边界向右滑动以查看整个帧。这个可以吗?

【问题讨论】:

  • 到目前为止你有写过代码吗?

标签: iphone uiview frame bounds


【解决方案1】:

视图的边界表示视图自身坐标系中的边界矩形。框架是超级视图坐标系中的边界矩形。通过更改视图的变换,您可以轻松创建 origin={0, 0} 和 size={1, 1} 的边界矩形,即使视图的框架是 origin={0, 0}, size={320, 480 }。该视图可能会覆盖整个屏幕,但边界的大小仍然只有 1 x 1 单位。

我明白您要做什么,这与 bounds != frame 确实不同。您正在谈论具有仅通过封闭视图部分可见的内容视图。这正是 UIScrollView 为您所做的。

【讨论】:

    【解决方案2】:

    绝对可以,这就是滑动视图在后台的工作原理。

    【讨论】:

      【解决方案3】:

      我认为框架和边界直接链接到视图的主层...但您可以添加一个子层并移动它。

      【讨论】:

        【解决方案4】:
        • 使类成为 UIView 的子视图。
        • 将要显示的内容放在另一个视图中,并附上-addSubview
        • 确保子视图设置了UIAutoresizingNone(或者您设置了self.autoresizesSubviews = NO)并且具有与其实际大小相对应的边界。
        • 设置self.clipsToBounds = YES
        • 更新子视图框架的原点以调整子视图的哪一部分在前视图中可见,或扩大主视图的边界以显示更多被剪裁的子视图。

        【讨论】:

          猜你喜欢
          • 2011-06-09
          • 1970-01-01
          • 2010-11-10
          • 2011-01-01
          • 1970-01-01
          • 2011-07-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多