autolayout学习笔记_2

一个在控制面板获取autolayout的_autolayoutTrace的小技巧

add the debugging code to ViewController.m:

@interface UIWindow (AutoLayoutDebug)
+ (UIWindow *)keyWindow;
- (NSString *)_autolayoutTrace;
@end

And:

- (void)viewDidAppear:(BOOL)animated {
           [super viewDidAppear:animated];
           NSLog(@"%@", [[UIWindow keyWindow] _autolayoutTrace]);
 }
- (void)didRotateFromInterfaceOrientation: (UIInterfaceOrientation)fromInterfaceOrientation
{
          [super didRotateFromInterfaceOrientation: fromInterfaceOrientation];
          NSLog(@"%@", [[UIWindow keyWindow] _autolayoutTrace]);
}

I like to have this tracing code in there so that it’s easy to spot ambiguous layouts. Interface Builder works hard to prevent you from making mistakes, but when you’re building up your constraints programmatically, you can do all sorts of things wrong.

Sometimes your layout may even appear to work just fine, but then you do an _autolayoutTrace and it actually says AMBIGUOUS LAYOUT. You want to catch such errors before you ship your app to customers. It’s better to be on the safe side, especially when you’re just starting out with Auto Layout.

时间: 2024-10-10 17:32:04

autolayout学习笔记_2的相关文章

Computer Network学习笔记_2

1_5 Traceroute,一种command tool,可以看network内部信息,ISP内部信息. 1_6 理解Network的模块化封装.学习Protocols和Layers,这种构建computer networks的关键机制.封装是越底层的protocol越封装在外面,形成一个protocol stack.每一层都在message加自己的header.当Browser和Server传输信息时,从Brower向下逐层封装,通过物理层传输,再从下到上demultiplexing.在不同

Autolayout学习笔记

知识点一: 1.布局思维 传统布局思路中,一个view在哪里有多大,那就写清楚它的坐标位置和宽高就定了,平时用CGRect和CGPoint这两种模型就足够了,而且它一定非常听你的话,写的是多少,它绝对就是多少:但是autolayout的思路却变化了,或者说改进了,它囊括了传统frame布局思路,除了可以告诉view的坐标和宽高,它更提供了一种相对的概念,比如: 1)view相对于屏幕视图左边5点,右边10点,上面15点,下面20点,如果屏幕的长宽比例发生了改变(比如从3.5寸的320:480变成

servlet学习笔记_2

一.Servlet线程安全问题1.servlet的线程安全问题.servlet引擎采用多线程的模式运行,它为并发的每个访问请求都预备一个线程来相应,但是由于只有一个servlet对象,因此,如果多个线程同时调用servlet的service方法,那么可能会触发线程安全问题.线程安全需要通过在service方法中建立局部变量或者使用锁来解决.线程安全问题演示: public class ThreadServlet extends HttpServlet { private static final

《利用python进行数据分析》之《第二章引言》学习笔记_2

pandas缺失值补充 1.创建带有缺失值的数据框 #coding:utf8 import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(5,3),index=list('abcde'),columns=['one','two','tree']) df.1x[1,:-1]=np.nan df.1x[1:-1,2]=np.nan print '\ndf1' print df 2.使用0替换缺失值 print '\ze

Spark GraphX学习笔记

概述 GraphX是 Spark中用于图(如Web-Graphs and Social Networks)和图并行计算(如 PageRank and Collaborative Filtering)的API,可以认为是GraphLab(C++)和Pregel(C++)在Spark(Scala)上的重写及优化,跟其他分布式 图计算框架相比,GraphX最大的贡献是,在Spark之上提供一站式数据解决方案,可以方便且高效地完成图计算的一整套流水作业. Graphx是Spark生态中的非常重要的组件,

A.Kaw矩阵代数初步学习笔记:2. Vectors

“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔记下载(Academia.edu) 第2章课程讲义下载(PDF) Summary Vector A vector is a collection of numbers in a definite order. If it is a collection of $n$ numbers, it is c

IOS学习笔记——ViewController生命周期详解

在我之前的学习笔记中讨论过ViewController,过了这么久,对它也有了新的认识和体会,ViewController是我们在开发过程中碰到最多的朋友,今天就来好好认识一下它.ViewController是IOS开发中MVC模式中的C,ViewController是view的controller,ViewController的职责主要包括管理内部各个view的加载显示和卸载,同时负责与其他ViewController的通信和协调.在IOS中,有两类ViewController,一类是显示内容

LDA-Latent Dirichlet Allocation 学习笔记

以下内容主要基于<Latent Dirichlet Allocation>,JMLR-2003一文,另加入了一些自己的理解,刚开始了解,有不对的还请各位指正. LDA-Latent Dirichlet Allocation JMLR-2003 摘要:本文讨论的LDA是对于离散数据集,如文本集,的一种生成式概率模型.LDA是一个三层的贝叶斯分层模型,将数据集中每一项,如每个文本,建模为某些未知的topic组成的集合的混合.每个topic又建模为某种混合概率分布.在文本建模中,话题的概率就提供了每

IOS学习笔记37——ViewController生命周期详解

在我之前的学习笔记中讨论过ViewController,过了这么久,对它也有了新的认识和体会,ViewController是我们在开发过程中碰到最多的朋友,今天就来好好认识一下它.ViewController是IOS开发中MVC模式中的C,ViewController是view的controller,ViewController的职责主要包括管理内部各个view的加载显示和卸载,同时负责与其他ViewController的通信和协调.在IOS中,有两类ViewController,一类是显示内容