gpt4 book ai didi

iphone - 从 drawRect 绘制到 UIView 的边界之外

转载 作者:太空狗 更新时间:2023-10-30 03:13:47 25 4
gpt4 key购买 nike

我的问题与这个非常相似Not drawing outside bounds when clipToBounds=NO没有得到明确的答复。

基本上我有一个 UIView,我想从它的中心到屏幕边缘画一条线。计算这些点在哪里很容易,使用 [self convertPoint:(CGPoint){0,0} fromView:[self superview]]; (它找到关于我的 View 的 super View 的原点。但是当我从我的 View 的 drawRect 中画了一条线:它在我的 View 边界处被剪掉了。

有没有办法在我的 View 边界之外绘制?我试过更改 clipsToBounds 属性,但它似乎没有任何效果。

我无法从 super View 中绘制线条,因为我需要对多个 View 进行此操作,并且有些 View 会在其他 View 之前...从 super View 的 drawRect 中找出图层似乎是个坏主意。

同样,我不认为我可以调整我的 View 边界以包括整个屏幕,因为我的 View 需要动态调整大小......边界必须是巨大的(> 20,000 平方点)这可以工作。

最佳答案

我不建议在 View 边界之外进行绘制。您的 View 需要自动调整大小以包含您的绘图,或者您需要具有透明的重叠 View 。或两者。我想不出这两种情况都无法涵盖的情况,但我可能缺乏想象力。 =)

目前可能正在发生的事情是,当重绘 super View 时,它会告诉 super View 它需要重绘,从而导致删除您在外面所做的绘图。已经有一段时间了,如果我错了,任何知识渊博的人都可以(应该!)在这里纠正我。

我不知道“Quartz Debug”(来自标准的苹果开发者工具安装,/Developer/Applications/Performance Tools/Quartz Debug)是否可以在模拟器中运行,但值得一试.它有一种模式可以显示重绘发生的时间和频率,并带有边框和可选的刷新延迟。

你可以按照你的要求去做,但是每次你超出 subview 的边界时你都需要强制重绘你的 subview ,这意味着你的 super View 需要在它的绘制函数中手动绘制它的 subview 。从本质上讲,您会抛弃 Apple 的绘图范例,而只是让您的 subview 无论如何都像主视图的绘图扩展一样。

此外,如果您的范围非常动态,您可能需要考虑以屏幕或 super View 的百分比而不是点来绘制,编码可能更有意义。

关于iphone - 从 drawRect 绘制到 UIView 的边界之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4300824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com