`

UIview需要知道的一些事情:setNeedsDisplay、setNeedsLayout

    博客分类:
  • ios
阅读更多

1、在Mac OS中NSWindow的父类是NSResponder,而在i OS 中UIWindow 的父类是UIVIew。程序一般只有一个窗口但是会又很多视图。

2、UIView的作用:描画和动画,视图负责对其所属的矩形区域描画、布局和子视图管理、事件处理、可以接收触摸事件、事件信息的载体、等等。

 

3、UIViewController 负责创建其管理的视图及在低内存的时候将他们从内存中移除。还为标准的系统行为进行响应。

 

4、layOutSubViews 可以在自己定制的视图中重载这个方法,用来调整子视图的尺寸和位置。

 

5、UIView的setNeedsDisplay和setNeedsLayout方法。首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews,就可以处理子视图中的一些数据。

宗上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据

分享到:
评论

相关推荐

    iphone 简单动画示例源码

    可以通过减少不必要的计算,合理安排动画的执行顺序,以及适时使用`UIView.setNeedsDisplay()`和`UIView.setNeedsLayout()`来提高性能。 通过学习这个源码示例,开发者不仅可以了解基本的动画原理,还能掌握如何在...

    iOS学习入门教程附有Demo

    5. 更新视图:通过setNeedsLayout和setNeedsDisplay方法,可以告诉系统视图需要重新布局或重绘。 本教程的Demo部分将包含实际的代码示例,让你有机会亲手实践这些理论知识,通过动手操作加深理解。通过跟随教程学习...

    好程序员学习笔记--UI基础UIWindow、UIView.doc

    当视图的内容改变时,如背景颜色、子视图的添加或删除等,系统会自动调用`setNeedsDisplay`或`setNeedsLayout`方法来通知视图进行重绘或布局更新。同时,视图还可以响应触摸事件,通过重写`touchesBegan:withEvent:`...

    ios-自定义按钮.zip

    可以使用`setNeedsDisplay()`或`setNeedsLayout()`来通知视图刷新布局或重绘。 5. **Block手势处理**:压缩包中的"BlockTest"可能是指使用Block(闭包)来处理按钮点击事件,这是一种简洁的事件处理方式。通过添加`...

    IOS应用源码——饼状图代码cakyTest.zip

    9. **自定义视图的更新**:当数据发生变化时,需要重新计算角度并调用`setNeedsDisplay`或`setNeedsLayout`来刷新饼状图的视图。 10. **性能优化**:对于大数据量的饼状图,优化绘图性能是必要的。可以考虑使用...

    ios源码之数字时钟DigiClock.rar

    DigiClock可能使用setNeedsDisplay或setNeedsLayout方法来通知系统需要更新界面,而不是在每次时间变化时都强制重绘。此外,如果DigiClock支持动画效果,例如秒针的平滑转动,那么可能使用Core Animation来实现这一...

    收集百度、阿里等100家企业面试题合集

    11. UIView的setNeedsDisplay与setNeedsLayout方法:这两个方法是UIView类中非常重要的两个方法。setNeedsDisplay方法用于告诉系统视图需要重绘;setNeedsLayout方法用于告诉系统视图的布局需要更新。掌握这两个方法...

    ios-画圈圈.zip

    6. **重绘视图**:当圆圈的属性(如半径、颜色)发生变化时,你需要调用`setNeedsDisplay()`或`setNeedsLayout()`来通知系统视图需要重新绘制或布局。 7. **响应式设计**:确保你的画圈功能在不同尺寸和方向的屏幕...

    iOS 实现简单画圆弧

    调用`setNeedsDisplay`或`setNeedsLayout`方法,让视图重新绘制。 除了基本的圆弧,还可以通过组合多个圆弧或者利用`CGContextAddArcToPoint`函数创建更复杂的曲线形状。此外,`UIBezierPath`类提供了更高级的API...

    ios-卡牌切换效果.zip

    同时,为了保证动画的流畅性,可能还需要对视图的渲染层次进行合理管理,例如使用CALayer的`shouldRasterize`属性,以及适时使用`setNeedsDisplay`和`setNeedsLayout`方法。 在提供的压缩包中,"WX20171017-164257@...

    UI基础与教学

    - 当视图的属性发生变化时,可以通过`setNeedsDisplay()`或`setNeedsLayout()`通知系统重新绘制或重新布局。系统会在下一帧合适的时间自动执行这些操作,提高性能。 通过学习和实践这些基本概念,新手开发者能够更...

    IOS面试题2018总结188题

    UIView的setNeedsDisplay与setNeedsLayout - **setNeedsDisplay**:标记视图及其子视图需要重新绘制。 - **setNeedsLayout**:触发视图及其子视图的布局更新过程。 #### 12. UIView与UILayer的关系 - **UIView**:...

    JPAntMarchAnimation

    11. **性能优化**:在处理复杂的动画时,需要注意性能优化,比如避免不必要的视图重绘,使用`setNeedsDisplay`或`setNeedsLayout`控制更新时机,以及利用GCD(Grand Central Dispatch)进行异步处理。 综上所述,`...

    ios-阴影遮罩.zip

    开发者可能会注意避免不必要的内存分配,如在需要时才创建和更新阴影和遮罩,或者利用`setNeedsDisplay:`和`setNeedsLayout:`方法来控制重绘和重新布局。 综上所述,"ios-阴影遮罩.zip"这个压缩包中的代码可能包含...

    自定义登陆动画界面

    - **避免不必要的重绘**: 减少不必要地调用`setNeedsDisplay`或`setNeedsLayout`,优化动画性能。 8. **代码示例** ```swift let animation = CABasicAnimation(keyPath: "position") animation.fromValue = ...

    iOS布局渲染之UIView方法的调用时机详解

    在iOS应用开发中,UI设计和布局是至关重要的部分,而理解UIView的渲染流程和方法调用时机则是优化用户体验的关键。本文将深入探讨iOS布局渲染中的UIView方法调用时机,帮助开发者更好地掌握视图的创建、布局更新和...

    iOS 代码划线

    如果需要根据用户交互改变线条,可以监听触摸事件或者使用其他反馈机制,在`drawRect:`之外的适当位置更新视图的属性,然后调用`setNeedsDisplay`或`setNeedsLayout`来触发重绘。 通过以上步骤,你可以在iOS应用中...

    100家企业iOS招聘需求整理

    - **setNeedsDisplay**:标记视图需要重新绘制。 - **setNeedsLayout**:标记视图需要重新布局。 ### 12. 层与视图的关系 - **UILayer**:UIView的子类,负责绘制和动画效果。 - **UIView**:用户界面元素的抽象...

    DSCollectionView

    而setNeedsLayout会默认调用layoutSubViews,就可以处理子视图中的一些数据。  宗上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据。    因为这两个方法都是异步执行的,所以一些元素还是直接...

Global site tag (gtag.js) - Google Analytics