uiview的几个刷新的界面刷新的方法

可参考链接

UICoordinateSpace 接口,从当前视图的坐标转化到在screen的坐标体

<font color=#0099ff size=7 face="黑体">iOS的屏幕的变化的时候,界面和屏幕变化之间的关系。以iOS8为分隔点。</font>

UIView 最为基础的属性

其他的属性都是通过分类来进行添加

和几何相关的内容

和图层的层次有关

和图层的层次有关

图层的刷新会影响到约束的问题,
这里最为常用的就是layoutifneed等等方法。

  • (void)setNeedsLayout
    没有强迫理解刷新,等待下一次刷新(下一个runloop循环到达),在主线程中,一般用于刷新比较多的子视图(任务不急,刷新量大)。
  • (void)layoutIfNeeded
    强迫立即刷新,view调用的方法为rootview,刷新它的子类。
  • (void)layoutSubviews
    刷新子类
    在ios 5 之前是默认的方法没有起到刷新的作用,需要重写来自定义。
    之后的版本默认方法起到了作用,因为autoresizing 和 constraint-based behaviors 提供了基本的默认的布局。我们可以重写这个方法,如果需要自定。或者autoresizing 和 constraint-based behaviors 失效的时候。
    自定义的时候,可以直接设置子view的frame。

    这个方法不需要直接调用,上面的两个方法被调用的时候回自动调用这个方法。

  • setNeedsDisplay
    这个方法主要是关于绘画内容的(展示)
    (也即是接受的空间需要重新绘画)

uiview的渲染

主要的内容是关于界面的绘画,界面的绘画出来即为渲染
(渲染:= 绘画 + 呈现)

tintcolor的来接

tintColor是在ios 7 上才会出现的内容,这个般是表示
具有穿透力的等等的颜色,也即是可能子视图使用在没有颜色的时候,就会使用功能这个颜色。可以认为是继承关系。

UIView的动画效果的方法

UIView动画效果的代码块

UIView的关键帧动画

UIView的手势识别控制方法:添加、删除、应该开始

这个动作的分类主要是作用在layer层上面

建立约束

更新约束

基础的默认约束

UIView

关于屏幕旋转在iOS 8 以及之后和iOS8之前的一些区别

iOS 7 屏幕旋转的时候,bounds 不改变
iOS 8 屏幕旋转的时候,bounds 改变

时间: 2024-11-09 09:01:29

uiview的几个刷新的界面刷新的方法的相关文章

winform频繁刷新导致界面闪烁解决方法

转自龙心文 原文 winform频繁刷新导致界面闪烁解决方法 一.通过对窗体和控件使用双缓冲来减少图形闪烁(当绘制图片时出现闪烁时,使用双缓冲) 对于大多数应用程序,.NET Framework 提供的默认双缓冲将提供最佳效果.默认情况下,标准 Windows 窗体控件是双缓冲的.可以通过两种方法对窗体和所创作的控件启用默认双缓冲.一种方法是将 DoubleBuffered 属性设置为 true,另一种方法是通过调用 SetStyle 方法将 OptimizedDoubleBuffer 标志设置

android 单线程多任务断点排队下载(支持多界面刷新)

最近在做一个单线程多任务的断点排队下载的功能,网上确实有很多这样的demo.但是呢我发现大部分网上的demo都是很些不完整的要么就是有缺陷的,可能是我还没找到.今天我给大家带来的一个功能完整的并且可以多界面刷新,就比如:我当前界面点了下载放后台下载了,退出了当前界面在进来网上很多这样demo都没做继续更新界面.并且还做了排队. 首先我们先制定下计划: 1.我们做的是断点下载,断点下载肯定是需要记录当前下载的进度和文件总大小的.这个当然是放在数据库里面最好,当然肯定会是异步来操作数据库,这里我们就

C#在工作线程刷新主界面控件状态小结,单例模式、委托

今日项目开发中需要在服务器界面实时显示客户端连接状态,使用C#的反射机制解决了问题.由于项目比较复杂,现结合一个小例子,对使用C#委托反射机制刷新主界面上的控件状态进行简单小结,希望对新手有所帮助. 一.新建一个C# winform工程:Form_MainUI,界面布局如图1. 代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data;

Android界面刷新

Android程序中可以使用的界面刷新方法有两种,分别是利用Invalidate和利用postInvalidate()来实现在线程中刷新界面. 1.利用Handler刷新界面: Invalidate不能直接在子线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用.实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新,而在子线程中通过sendMessage发送界面更新消息. // 在o

项目经验谈---IM新消息界面刷新异常处理记录

项目中使用到ContentObserver来观察Provider的变化,当对Uri做数据库操作时对应的Provider会发一条Notify消息调用UI上层的ContentChange方法,在这个ContentChange方法中是重新对本会话的消息表的Uri查询一次,查询完毕后更新界面并将listView滑到最底部,有发现如果删除某会话的最后一条数据再新增一条数据时界面没有刷新的异常.排查后发现每一条短消息对应一个ThreadId,一旦删除了某个会话中的最后一条消息,在新建一条信息会重新创建一个新

WPF 数据绑定,界面刷新的两种方法-----INotifyPropertyChanged

.Netformwork4.0及以下版本 -------INotifyPropertyChanged 命名空间: System.ComponentModel 后台代码 public partial class DvrWnd : UserControl { public DvrWnd() { InitializeComponent(); } private void InitInfo() { for (int i = 0; i < 10; i++) { DvrInfo dvrInfo = new

Android界面刷新方法

Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用. Android界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面. 利用Handler刷新界面 实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessag

记一个界面刷新相关的Bug

今天遇到一个比较有意思的bug, 这里简单记录下. Bug的症状是通过拖拉边框把我们客户端主窗口拖小之后,再最大化,会发现窗口显示有问题, 看起来像是刷新问题, 有些地方显示的不对了. 这里要说明的是我这里的主窗口是非常复杂的窗口, 里面集成了很多组件(cpmponent),有很多层的子窗口. 这个问题只有在特定条件下才会发生, 正常情况下都是好的. 遇到这种问题,我们怎么处理? 首先当然是观察症状, 究竟是刷新问题, 还是Layout出错了. 我们可以通过Spy++查看窗口层次是不是正确, 窗

Swing界面刷新问题(转)

在Java Swing编程中,往往会遇到需要动态刷新界面的时候,例如动态刷新JLabel的文本,JTextField里的文本等等.但是往往却没有达到我们预期的效果,我相信很多朋友都遇到过本文将要说的这个问题. 如下图的Swing界面中,我们期望在点击按钮时,Jlabel和JTextField里的文本能不断的变化,并实时地显示出来. 这个例子中,我们期望点击按钮后,JLabel和JTextField中每隔一秒钟刷新一下文本,顺序的显示以下的几句文本: Button clicked Start to