我想使用ADLivelyTableView,但它无法正常工作。
https://github.com/applidium/ADLivelyTableView
这是我的代码。
◯ViewController.h
#import "ADLivelyTableView.h"
@interface ViewController : GAITrackedViewController<UITableViewDelegate, UITableViewDataSource>
{
ADLivelyTableView * tableView;
}
@property (nonatomic, retain) ADLivelyTableView *tableView;
◯ViewController.m
#import "ViewController.h"
#import "ADLivelyTableView.h"
@implementation ViewController
@synthesize tableView;
----固定代码----
- (void)viewDidLoad {
tableView = [[ADLivelyTableView alloc]initWithFrame:rect style:UITableViewStylePlain];
//[transitionButton release];
tableView.delegate = self;
tableView.dataSource = self;
tableView = (ADLivelyTableView *)self.tableView;
tableView.initialCellTransformBlock = ADLivelyTransformFan;
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell){// yes
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
[uv addSubview:tableView];
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
//return self.feedManager.feedArray.count;
return [[APP_DELEGATE titlearray] count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell){// yes
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
// Update Cell
[self updateCell:cell atIndexPath:indexPath];
return cell;
}
- (void)updateCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
// Update Cells
cell.backgroundColor = [UIColor clearColor];
cell.textLabel.text = [[APP_DELEGATE titlearray] objectAtIndex:indexPath.row];
cell.textLabel.textColor = [UIColor blackColor];
cell.textLabel.font = [UIFont fontWithName:@"HiraKakuProN-W3" size:15];
cell.textLabel.adjustsFontSizeToFitWidth = YES;
cell.textLabel.minimumScaleFactor = 10.0f;
cell.textLabel.numberOfLines = 0;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle != UITableViewCellEditingStyleDelete) {
return;
}
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView reloadRowsAtIndexPaths:[self.tableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationAutomatic];
}
&#34;块指针类型的转换&#34; ADLivelyTransform&#34; (又名&#34; NSTimerIntercal(^)CALayer * __ strong,float)&#39;)到C指针类型&#39; const void *&#39;需要一个桥梁演员&#34;
引起的if (block != _transformBlock) {
Block_release(transformBlock);
_transformBlock = Block_copy(block);
}
所以我注释掉了这段代码并构建成功。
但是tableView单元格没有动画效果。
我该怎么办?
答案 0 :(得分:0)
您可以尝试为文件ADLivelyTableView.m
禁用arc,添加编译器标志-fno-objc-arc
。更多详情请参阅How can I disable ARC for a single file in a project?
如果您需要它,这是我的ViewController.m
文件。您可以简单地创建一个新项目并用它替换ViewController代码,您将看到动画。
#import "ViewController.h"
#import "ADLivelyTableView.h"
@interface ViewController ()<UITabBarControllerDelegate, UITableViewDataSource, UITableViewDelegate>
@property (strong, nonatomic) ADLivelyTableView *tableView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
CGRect rect = self.view.bounds;
self.tableView = [[ADLivelyTableView alloc]initWithFrame:rect style:UITableViewStylePlain];
self.tableView = (ADLivelyTableView *)self.tableView;
self.tableView.initialCellTransformBlock = ADLivelyTransformFan;
self.tableView.delegate = self;
self.tableView.dataSource = self;
[self.view addSubview: self.tableView];
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"TheCell"];
// Do any additional setup after loading the view, typically from a nib.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 100;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TheCell" forIndexPath:indexPath];
cell.textLabel.text = @"abc";
UIColor * altBackgroundColor = [UIColor colorWithWhite:0.9f alpha:1.0f];
cell.backgroundColor = [indexPath row] % 2 == 0 ? [UIColor whiteColor] : altBackgroundColor;
cell.textLabel.backgroundColor = cell.backgroundColor;
return cell;
}