无法使用ADLivelyTableView

时间:2016-03-24 09:47:10

标签: ios objective-c iphone swift uitableview

我想使用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单元格没有动画效果。

我该怎么办?

1 个答案:

答案 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;
}