【问题标题】:iOS: is it allowed to paint outside the boundsiOS:是否允许在边界之外绘画
【发布时间】:2011-02-08 23:57:35
【问题描述】:

如果clipToBounds = YES,那么你可以绘制任何你想要的东西,但你只能在边界内绘制。如果将其设置为 NO,则可以在边界之外进行绘画,但是否允许?

我问的原因是因为 iOS 使用环境负责确保屏幕的正确部分被(重新)绘制的概念(例如 setNeedsDisplay)。如果我画在我的界限之外,它会出错吗?

我试过了,好像还可以,但是呢?

【问题讨论】:

  • 根据答案,您似乎可以,但您为什么要这样做?绘制没有显示的东西是浪费资源。
  • 你没有看懂我的第一句话。

标签: iphone ipad ios


【解决方案1】:

Evgen 是对的,它在“View Programming Guide for iOS”中有明确的记录。但是,您将无法处理来自边界之外的事件。

【讨论】:

  • 从手册中引用:默认情况下,视图的框架不会剪辑到其父视图的框架。因此,位于其父视图框架之外的任何子视图都会完整呈现。不过,您可以通过将 superview 的 clipsToBounds 属性设置为 YES 来更改此行为。无论子视图是否在视觉上被剪裁,触摸事件始终遵循目标视图的父视图的边界矩形。换句话说,在位于其父视图边界矩形之外的视图部分中发生的触摸事件不会传递到该视图。
  • 你说得对,我误解了你的问题,对不起。我很惭愧。
【解决方案2】:

如果您是这个意思,我认为您的应用不会被 Apple 拒绝。毕竟它只是利用了一个公开的和记录在案的 API。但是要为奇怪的效果做好准备,因为这样就不能保证正确的绘制顺序了。

【讨论】:

    【解决方案3】:

    是的,它有效,使用此属性没有任何问题。您的对象将根据需要重新绘制。

    【讨论】:

    • 如果有某种支持信息说明允许在边界外绘画/不会导致问题,那就太好了
    猜你喜欢
    • 2018-07-09
    • 2019-06-24
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2015-01-15
    相关资源
    最近更新 更多