hitTest方法
作用:去寻找最适合的view
什么时候调用:当一个事件传递给当前View就会调用
返回值:返回的是谁,谁就是最适合的View
1、判断自己是否接收事件
2、判断当前点在不在当前View (pointInside: withEvent:)
3、从后往前遍历自己的子控件,让子控件重复前两步操作,(把事件传递给,让子控件调用hitTest)
事件的传递
UIAPPlication-》UIWindow-》UIVIew 寻找最适合的view
1、当一个控件如果它的父控件不能够接收事件,那么子控件也不能接收事件
2、当一个控件隐藏的时候,子控件也跟着隐藏
3、当一个控件透明的时候,子控件也跟着透明
响应者链条
能够处理事件的对象叫响应者对象
如果没有写touchBegan 默认做法是将事件顺着响应者链条向上传递,将事件传递给上一个响应者(就是他的父控件,没有父控件传递给controller,最后到window—>application)
图片的两种加载方式区别
1>imageName
a.就算指向它的指针被销毁,该资源也不会从内存中干掉
b.放到Assets.xcassets的图片,默认就有缓存
c.图片经常被使用
2>imageWithContentOfFile:
a.就算指向它的指针被销毁,该资源会从内存中干掉
b.放到项目中的图片就不带有缓存
c.不经常用的,大批量的图片
加毛玻璃效果
UIToolbar * toolbar = [[UIToolbar alloc] init];
toolbar.frame = frame;
toolbar.barStyle = …;
toolbar.alpha = 0.98;
// 哪个对象需要毛玻璃就加到哪个对象上面。
[self.imageView addSubView:toolbar];