gpt4 book ai didi

ios - 空 drawRect 实现导致内存警告

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:49 26 4
gpt4 key购买 nike

我有一个 UIView,我在上面用手指绘制了一个 UIBezierPath。当我重新缩放 View 时(比如在绘制路径之后),将触发重绘函数,从而重新缩放 BezierPath:

- (void)redrawPathsWithScale:(float)scale
{
[_path applyTransform:CGAffineTransformMakeScale(scale, scale)];
[self setNeedsDisplay];
}

setNeedsDisplay 导致 drawRect 被调用。现在,每次我放大到接近 x6 的绝对比例时,我都会立即收到内存警告,并且应用程序会崩溃。

我的 drawRect 方法如下所示:

- (void)drawRect:(CGRect)rect
{
[_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}

奇怪的是:根本不执行 drawRect 会删除内存警告。实现一个空的 drawRect 仍然会导致崩溃!

最佳答案

添加 [super drawRect:rect]; 有什么不同吗?

drawRect 的 Apple 文档指出:

If you subclass UIView directly, your implementation of this method does not need to call super. However, if you are subclassing a different view class, you should call super at some point in your implementation.

如果您是 UIView 的子类,您应该没问题,但可能值得检查一下以防万一。

关于ios - 空 drawRect 实现导致内存警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13028099/

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