15、iOS 项目开发中遇到一个问题:就是“在一个可以左右滚动的页面上,添加一些交互功能”,比如说点击某个页面会有文字变化,图片变换等!如何解决?答:
UISrollView 的触摸事件经常与其子 view 触摸事件冲突,会截断 subView 事件的响应。
一般是两个思路:
1. 通过响应链将事件传递给下一个响应者去实现,即将父视图的事件传递
给子视图去处理。即 UIScrollView 上的控件处理 touch 事件
2. 通过定制一个scrollerview,并重写他的touch方法。即UIScrollView本身
要响应 touch 事件
16、简单对 UIScrollViewDelegate 中的常用协议方法做一个说明?答:
//只要滚动了就会触发
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
// 缩放比例变化就会触发
- (void)scrollViewDidZoom:(UIScrollView *)scrollView;
//开始拖拽视图
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
//将要结束拖拽,手指已拖动过 view 并准备离开手指的那一刻- (void)scrollViewWillEndDragging:(UIScrollView *)aScrollViewwithVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint*)targetContentOffset;
//完成拖拽
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollViewwillDecelerate:(BOOL)decelerate;
//将开始降速时
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;
//减速停止了时执行,手触摸时执行执行
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
//滚动动画停止时执行,代码改变时出发,也就是 setContentOffset 改变时- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;
//设置放大缩小的视图,要是 UIScrollView 的 subview
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
//scrollView 开始缩放时
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollViewwithView:(UIView *)view;
//完成放大缩小时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView*)view atScale:(float)scale;
//是否完全滚动到滚轴视图的顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;
//完全滚动到滚轴视图的顶部之后回调
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;
第七章
1、对一个 UIView 设置动画的基本步骤有哪些?
答:
1、//开始动画块 beginAnimations
[UIView beginAnimations:@“ZoomIn” context:NULL];2、//设置动画块时长 setAnimationDuration
[UIView setAnimationDuration:1.0f];3、//设置动画的具体效果(比如比原视图大或小的视图)_myView.frame = CGRectInset(_myView.frame,-CGRectGetWidth(_myView.frame),-CGRectGetHeight(_myView.frame));4、//