Performance of UIView: removeFromSuperview VS hide

前端 未结 3 1261
梦谈多话
梦谈多话 2020-12-28 15:29

This question is really basic. What is the performance difference between removing a UIView from the view hierarchy and hiding a UIView?

I

3条回答
  •  猫巷女王i
    2020-12-28 16:04

    I've done an experiment on iOS6 iPad mini, with a large scroll view that has a lot of rich content (including images, drop shadows, gradient layers, patterned background images, you know, those designers:) ) and I found that view.hidden=YES ≠ [view removeFromSuperview].

    I originally thought that setting hidden to YES will make the view not being render/drawn, therefore having a lot of hidden views will have no impact on efficiency. But the actual result is: 1) if I set the offscreen views in the big scroll view to hidden (and unhide them when they come back into visible area), the scrolling is not smooth/continuous at all. When it's naturally decelerating it looks very jumpy. 2) if I remove the offscreen views from the scroll view (but still keep in memory with a tracking array, so when they come back in they can be added immediately), the scrolling is obviously smoother.

提交回复
热议问题