Leaves -- iOS上一种图书翻页效果的实现2
来源:互联网 发布:何林夏 知乎 编辑:程序博客网 时间:2024/05/20 23:07
最后便是当手指离开屏幕时,如何处理翻页结果(将当前页翻过去还是没有翻过去)。这个操作在 这个操作在touchesEnded:withEvent中完成
复制代码
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
......
UITouch *touch = [event.allTouches anyObject];
CGPoint touchPoint = [touch locationInView:self];
BOOL dragged = distance(touchPoint, touchBeganPoint) > [self dragThreshold];
[CATransaction begin];
float duration;
if ((dragged && self.leafEdge < 0.5) || (!dragged && [self touchedNextPage])) {
[self willTurnToPageAtIndex:currentPageIndex + numberOfVisiblePages];
self.leafEdge = 0;
duration = leafEdge;
......
}
else {
[self willTurnToPageAtIndex:currentPageIndex];
self.leafEdge = 1.0;
duration = 1 - leafEdge;
.......
}
[CATransaction setValue:[NSNumber numberWithFloat:duration]
forKey:kCATransactionAnimationDuration];
[CATransaction commit];
}
如果需要在翻页后执行某些操作(如在屏幕上显示当前页数等),则可以在继承自 LevelsViewController的控制器中实现leavesView:didTurnToPageAtIndex方法。
在此需要注意的就是 topPageReverseImage在竖屏时做了如下的变换
复制代码
topPageReverseImage.contentsGravity = kCAGravityRight;
topPageReverseImage.transform = CATransform3DMakeScale(-1, 1, 1);
从而使topPageReverseImage显示的内容让人感觉是透过纸张,看到topPage的内容。
横屏与竖屏
Leaves还有一个特点就是其支持横屏时,能同时看到两页的内容(该效果是由Ole Begemann改进的)。该改进最关键的地方就是增加了leftPage层,同时在横屏显示时将屏幕一分为二,在左侧显示leftPage。同进在翻页的过程中,topPageReverseImage显示的是topPage页下一页的内容。在翻转屏幕时,会根据方向重新调整内容的显示。
复制代码
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
......
UITouch *touch = [event.allTouches anyObject];
CGPoint touchPoint = [touch locationInView:self];
BOOL dragged = distance(touchPoint, touchBeganPoint) > [self dragThreshold];
[CATransaction begin];
float duration;
if ((dragged && self.leafEdge < 0.5) || (!dragged && [self touchedNextPage])) {
[self willTurnToPageAtIndex:currentPageIndex + numberOfVisiblePages];
self.leafEdge = 0;
duration = leafEdge;
......
}
else {
[self willTurnToPageAtIndex:currentPageIndex];
self.leafEdge = 1.0;
duration = 1 - leafEdge;
.......
}
[CATransaction setValue:[NSNumber numberWithFloat:duration]
forKey:kCATransactionAnimationDuration];
[CATransaction commit];
}
如果需要在翻页后执行某些操作(如在屏幕上显示当前页数等),则可以在继承自 LevelsViewController的控制器中实现leavesView:didTurnToPageAtIndex方法。
在此需要注意的就是 topPageReverseImage在竖屏时做了如下的变换
复制代码
topPageReverseImage.contentsGravity = kCAGravityRight;
topPageReverseImage.transform = CATransform3DMakeScale(-1, 1, 1);
从而使topPageReverseImage显示的内容让人感觉是透过纸张,看到topPage的内容。
横屏与竖屏
Leaves还有一个特点就是其支持横屏时,能同时看到两页的内容(该效果是由Ole Begemann改进的)。该改进最关键的地方就是增加了leftPage层,同时在横屏显示时将屏幕一分为二,在左侧显示leftPage。同进在翻页的过程中,topPageReverseImage显示的是topPage页下一页的内容。在翻转屏幕时,会根据方向重新调整内容的显示。
- Leaves -- iOS上一种图书翻页效果的实现2
- Leaves -- iOS上一种图书翻页效果的实现
- Leaves -- iOS上一种图书翻页效果的实现
- Leaves -- iOS上一种图书翻页效果的实现
- Leaves -- iOS上一种图书翻页效果的实现1
- Leaves -- iOS上一种图书翻页效果的实现
- Leaves -- iOS上一种图书翻页效果的实现
- iphone上一种图书翻页效果的实现-- Leaves
- iOS上一种图书翻页效果的实现(Leaves)详解
- iOS上一种图书翻页效果的实现(Leaves)详解
- iOS上一种图书翻页效果的实现(Lea…
- IOS 上图书翻页效果的实现
- ios图书翻页效果
- Android实现图书的翻页效果
- javaScript+turn.js实现图书翻页效果
- 【代码笔记】iOS-翻页效果的实现
- IOS实现半翻页效果
- 需求:实现IOS翻页效果
- ViewRoot$CalledFromWrongThreadException 和内存泄漏
- Leaves -- iOS上一种图书翻页效果的实现1
- 12306根证书安装方法
- Android获取浏览器User Agent
- String
- Leaves -- iOS上一种图书翻页效果的实现2
- 关于Canvas.drawText中xy位置问题
- Hibernate的二级缓存策略的一般过程如下:
- ASP.Net页尾中添加JavaScript的方法
- 人生哲理 收集整理
- 获取数据库的版本号
- 编译linux内核tips
- 图片放大缩小的区域点击事件代码例子
- Oracle存储过程基本语法