响应者链 事件的完整处理过程:1、先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件2、调用最合适控件的touches...方法3、如果调用了[super touches...];方法将事件顺着响应者链条往上传递,传递给上一个响应者4、接着就会调用一个响应者的touch
分类:
移动开发 时间:
2016-03-11 12:04:01
阅读次数:
151
前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应) 其中重点和难点是: 1.如何寻找最合适的view
分类:
其他好文 时间:
2016-03-10 18:45:16
阅读次数:
229
来自StackOverflow的帖子,原文见这里。 So I just sorted out in this way: Add in the UIScrollView a UIView (we can call that contentView); In this contentView, set
分类:
其他好文 时间:
2016-03-08 16:27:32
阅读次数:
198
LayoutParams是子控件控制自己在父控件中布局的一个类。 不同布局都有相对的LayoutParams,最简单的LinearLayout.LayoutParams类可以设置布局的宽高。 我在写一个布局的时候,布局总是占用太多的空间,我一气之下就直接用代码设置了这个布局的具体高度。 Linear
分类:
其他好文 时间:
2016-03-05 18:57:58
阅读次数:
356
在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高。 1 enum { 2 UIViewAutoresizingNone = 0, 3 UIViewAutoresizingFlexibleLeftMa
分类:
其他好文 时间:
2016-03-05 18:50:28
阅读次数:
151
UIView的常见属性 @property(nonatomic,readonly) UIView *superview; 获得自己的父控件对象 @property(nonatomic,readonly,copy) NSArray *subviews; 获得自己的所有子控件对象 @property(n
分类:
其他好文 时间:
2016-03-05 00:14:04
阅读次数:
221
UIView的常见属性以及方法 @property(nonatomic,readonly) UIView *superview; // 获得自己的父控件对象 @property(nonatomic,readonly,copy) NSArry *subviews; // 获得自己的所有子控件对象 @p
分类:
移动开发 时间:
2016-03-03 14:33:46
阅读次数:
146
1. 九宫格计算思路(主要就是控件位置(x/y)的改变) 1.1利用控件的索引index(该父控件中子控件的个数)计算出控件所在的行号和列号 1.2利用列号计算控件的x值 = 行号 *(子控件的宽度 + 间距) 1.3利用行号计算控件的y值 = 列号 *(子控件的高度 + 间距) /* 清除超过该V
分类:
移动开发 时间:
2016-03-02 19:58:19
阅读次数:
197
原因多半是由于在自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。 即在Item布局的根布局加上and
分类:
移动开发 时间:
2016-02-29 21:26:33
阅读次数:
166
最近在机顶盒上做一个gridview, 其焦点需要在item的子控件上,但gridview的焦点默认在item上,通过 android:descendantFocusability="afterDescendants" <ScrollView android:id="@+id/scroll_cont
分类:
其他好文 时间:
2016-02-29 12:17:11
阅读次数:
137