这是一个 Cocoa Touch UITableViewController 子类,在单元格第一次出现时提供了缩放效果(类似于 Google+ iPhone 应用的风格)
UITableViewZoomController 的实际应用示例(使用 SDWebImage 库的自定义单元格)。这只是对它可能的外观的一个想法,单元格设计实现取决于您!这个库只负责动画效果。
TTUITableViewZoomController.h
和 TTUITableViewZoomController.m
,并将它们包含到您的项目中。#import "TTUITableViewZoomController.h"
并将 TTUITableViewZoomController
作为子类。您可以使用一些选项来自定义动画,这些选项通过属性设置。您应该在继承自 UITableViewZoomController 的控制器中在 viewDidLoad 方法中设置它们
cellZoomXScaleFactor
- 在单元格动画回正常大小之前沿 x 轴缩放多少。1 是正常大小。>1 更大,<1 更小。默认值(如果未设置)是 1.25cellZoomYScaleFactor
- 在单元格动画回正常大小之前沿 y 轴缩放多少。1 是正常大小。>1 更大,<1 更小。默认值(如果未设置)是 1.25cellZoomInitialAlpha
- 单元格开始动画时的初始 alpha 值。例如,如果您将其设为 0,则单元格将完全透明,并且将在缩放的同时淡入视图。值介于 0 和 1 之间。默认值(如果未设置)是 0.3cellZoomAnimationDuration
- 动画效果的持续时间,以秒为单位。默认值(如果未设置)是 0.65 秒cellZoomXOffset
- 允许您指定动画初始位置的X轴偏移量(以像素为单位),例如,如果您指定-50,这意味着除了动画之外,单元格也会从屏幕左侧50像素的位置进入。如果您指定100,则将从屏幕右侧100像素的位置进入。与cellZoomYOffset结合使用可以使单元格以对角线的方式进入(请参考Demo示例中的TabThreeViewController)。如果不设置,则默认为0。cellZoomYOffset
- 允许您指定动画初始位置的Y轴偏移量(以像素为单位),例如,如果您指定-50,这意味着除了动画之外,单元格也会从屏幕顶部50像素的位置进入。如果您指定100,则将从屏幕底部100像素的位置进入。与cellZoomXOffset结合使用可以使单元格以对角线的方式进入(请参考Demo示例中的TabThreeViewController)。如果不设置,则默认为0。MyTableViewController.h
#import <UIKit/UIKit.h>
#import "TTUITableViewZoomController.h"
@interface MyTableViewController : TTUITableViewZoomController
@end
MyTableViewController.m
#import "MyTableViewController.h"
@implementation MyTableViewController
-(void)viewDidLoad{
self.cellZoomInitialAlpha = [NSNumber numberWithFloat:0.1]; //these six properties are optional. If you don't supply them defaults will be used.
self.cellZoomAnimationDuration = [NSNumber numberWithFloat:0.3];
self.cellZoomXScaleFactor = [NSNumber numberWithFloat:1.3];
self.cellZoomYScaleFactor = [NSNumber numberWithFloat:1.3];
self.cellZoomXOffset = [NSNumber numberWithFloat:-75];
self.cellZoomYOffset = [NSNumber numberWithFloat:75];
}
/*Do the rest of the Table View Datasource and Delegate methods here as usual*/
@end
然后只需创建一个MyTableViewController的实例,并像通常那样将其添加到任何视图或窗口中即可!
所包含的源代码是一个XCode项目,您可以打开它来查看一个演示。
Demo/TableViews文件夹还显示了三个继承自TTUITableViewZoomController的UITableViewControllers的示例
TabOneViewController
- 使用所有默认选项的UITableViewZoomController,并带有自定义单元格样式显示图像。(我认为这种效果通常在自定义单元格样式上比在Apple UITableViewCell默认单元格样式上效果更好)TabTwoViewController
- 使用UICellView(UITableViewCellStyleSubtitle)的默认Cocoa Touch样式。然后覆盖默认UITableViewZoomController的InitialAlpha、XScaleFactor、YScaleFactor和AnimationDuration属性,以实现略微更快的动画,即将单元格以放大而非缩小的方式缩放,并且完全不淡入淡出。TabThreeViewController
- 与TabOneViewController类似,但覆盖cellZoomXOffset和cellZoomYOffset属性,使动画从左下角以对角线方式进入,并覆盖AnimationDuration属性来加速动画(类似于Google+的最新版本)您还可以参考这些示例,以便了解如何使用库,如果有任何不清楚的地方。