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、//