Есть ли какое-либо основное правило для использования таких методов, как drawRect, setNeedsDisplay и layoutSubViews? Я считаю, что они отрицательно влияют на производительность приложения. Есть ли какие-либо предпочтительные альтернативы для этих сообщений?Использование drawRect, setNeedsDisplay и layoutSubViews
3
A
ответ
1
Хотя это не точный дубликат this question, я считаю, что my answer there по-прежнему применяется.
Таким образом, -drawRect:
будет перерисовывать содержимое в пределах вида, что является дорогостоящей операцией. Избегайте перерисовки, если можете, путем разбиения содержимого и перемещения или скрытия этих слоев по мере необходимости.
Однако эти перерисовки обычно оказывают значительное влияние на производительность, если многие из них выполняются быстро, например, при попытке оживить контент. Однократные перерисовки статических элементов пользовательского интерфейса не будут медлительно замедлять работу.
Смежные вопросы
- 1. setNeedsDisplay не срабатывает DrawRect
- 2. setNeedsDisplay не вызывается drawRect
- 3. Пользовательский рисунок UIView с layoutSubviews vs drawRect
- 4. Использование CGRect и setNeedsDisplay
- 5. Calling -setNeedsDisplay: ДА из -drawRect?
- 6. Понимание setNeedsDisplay/drawRect с блоками
- 7. iPhone - setNeedsDisplay не называет drawRect
- 8. пользовательские ячейки с drawRect: и setNeedsDisplay методы
- 9. drawrect Vs layoutsubviews - NSView - Touch Cocoa
- 10. drawRect не отвечает на setNeedsDisplay (mcve)
- 11. не -setNeedsDisplay вызывался, чтобы обновить DrawRect
- 12. setNeedsDisplay для DrawRect после нажатия кнопки
- 13. Использование setNeedsDisplay
- 14. setNeedsDisplay и subviews
- 15. Вызов setNeedsDisplay из GLKView drawRect с/без dispatch_async
- 16. UIScrollView подвиды и setNeedsDisplay
- 17. NStimer и setNeedsDisplay
- 18. ios UITableViewCell программно создает в drawRect vs layoutSubviews
- 19. Как вызвать drawRect: когда layoutSubviews вызывает в ios
- 20. setNeedsDisplay в подклассе UIView (в ipad Splitview), не вызывающем drawRect
- 21. В коде UIViewController, в [self.subViewGrid setNeedsDisplay] не вызывая -drawRect
- 22. картинка не двигается (-setNeedsDisplay: ДА не вызывает DrawRect :)
- 23. [UIView setNeedsDisplay]: есть ли простой способ узнать, когда drawRect завершен?
- 24. DrawRect и AFNetworking
- 25. drawRect - повторное использование NSBezierPath
- 26. iOS: [self.view setNeedsDisplay];
- 27. Задержка между setNeedsDisplay() и вызовом функции redraw()
- 28. UIView setNeedsDisplay не имеет эффекта?
- 29. setNeedsDisplay нет обновления экрана
- 30. UIView setNeedsDisplay, вызывающий setNeedsDisplay CALayer?
Большое вам спасибо – Abhinav