Dav*_*non 2 iphone objective-c uikit ios ios11
我self.bound
用来获取drawRect
方法中的UIView大小.但是现在,使用XCode 9,我收到了这个警告:
主线程检查器:在后台线程上调用UI API: - [UIView bounds]
在方法中获取视图大小的正确方法是什么drawRect
?
像这样:
override func drawRect(rect: CGRect)
let bds = DispatchQueue.main.sync {
return self.bounds
}
// ....
}
Run Code Online (Sandbox Code Playgroud)
但是,drawRect
首先在后台线程上调用的事实是一个不好的迹象 - 除非您使用CATiledLayer或其他内置架构来执行此操作.你应该首先担心这一点.
我终于找到了问题的解决方案.我现在重写layoutSubviews
UIView以保持类成员中的视图边界:
- (void)layoutSubviews
{
[super layoutSubviews];
m_SelfBounds = self.bounds;
}
Run Code Online (Sandbox Code Playgroud)
在那之后,我只是m_SelfBounds
在使用drawRect
方法.
归档时间: |
|
查看次数: |
426 次 |
最近记录: |