UITableViewZoomController 1.0.0

UITableViewZoomController 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年1月

Pauli Jokela 维护。



  • Pauli Jokela

这是原始项目的分支。所有信用归 Tom Thorpe,而 Pauli 'Dids' Jokela 只维护这个分支和 cocoa pod。

UITableViewZoomController

这是一个 Cocoa Touch UITableViewController 子类,在单元格第一次出现时提供了缩放效果(类似于 Google+ iPhone 应用的风格)

Screenshot

UITableViewZoomController 的实际应用示例(使用 SDWebImage 库的自定义单元格)。这只是对它可能的外观的一个想法,单元格设计实现取决于您!这个库只负责动画效果。

YouTube 视频

ScreenshotScreenshotScreenshot

使用方法

  • 在源目录中,找到 TTUITableViewZoomController.hTTUITableViewZoomController.m,并将它们包含到您的项目中。
  • 在通常使用(子类)UITableViewController 的地方,使用 #import "TTUITableViewZoomController.h" 并将 TTUITableViewZoomController 作为子类。
  • 就这些了!

选项

您可以使用一些选项来自定义动画,这些选项通过属性设置。您应该在继承自 UITableViewZoomController 的控制器中在 viewDidLoad 方法中设置它们

  • cellZoomXScaleFactor - 在单元格动画回正常大小之前沿 x 轴缩放多少。1 是正常大小。>1 更大,<1 更小。默认值(如果未设置)是 1.25
  • cellZoomYScaleFactor - 在单元格动画回正常大小之前沿 y 轴缩放多少。1 是正常大小。>1 更大,<1 更小。默认值(如果未设置)是 1.25
  • cellZoomInitialAlpha - 单元格开始动画时的初始 alpha 值。例如,如果您将其设为 0,则单元格将完全透明,并且将在缩放的同时淡入视图。值介于 0 和 1 之间。默认值(如果未设置)是 0.3
  • cellZoomAnimationDuration - 动画效果的持续时间,以秒为单位。默认值(如果未设置)是 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+的最新版本)

您还可以参考这些示例,以便了解如何使用库,如果有任何不清楚的地方。