登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

仿BOSS转场动画

[复制链接]
来自: liujinfeng 分类: iOS精品源码 上传时间: 2016-6-2 16:16:46

项目介绍:

仿BOSS首页table点击之后的转场动画,已经写好了完成的DEMO,用起来很简单,希望需要的小伙伴多支持,有问题可以联系我。新人第一次发帖,大家多关照

使用代码:
[Objective-C] 查看源文件 复制代码
#import "ViewController.h"
#import "BossPushTransition.h"
#import "UIView+Corner.h"
#import "Test1ViewController.h"
#import "ViewTableViewCell.h"

@interface ViewController ()<UINavigationControllerDelegate>

@property (weak, nonatomic) IBOutlet UITableView *myTableView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"bg_title"] forBarMetrics:UIBarMetricsDefault];
    [self creatCustomLeftBarButton];

    self.automaticallyAdjustsScrollViewInsets = NO;
    
    [_myTableView registerNib:[UINib nibWithNibName:@"ViewTableViewCell" bundle:nil] forCellReuseIdentifier:@"ViewTableViewCell"];
}

- (void)creatCustomLeftBarButton {
    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.bounds = CGRectMake(0, 0, 30, 30);
    [button setImage:[UIImage imageNamed:@"bar_notice"] forState:UIControlStateNormal];
    UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:button];
    self.navigationItem.leftBarButtonItems = @[item];
}

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    
    self.navigationController.delegate = self;
    
}
- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    
    if (self.navigationController.delegate == self) {
        self.navigationController.delegate = nil;
    }
}

#pragma mark ==== UITableViewDelegate && UITableViewDataSouce
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
    return 10;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    return 167;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    ViewTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ViewTableViewCell"];
    
    cell.myImage.image = [UIImage imageNamed:[NSString stringWithFormat:@"%ld.jpg",indexPath.row+1]];

    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    CGRect popRect = [self.view convertRect:[tableView cellForRowAtIndexPath:indexPath].frame toView:self.view];
    popRect.origin.y += 64;
    self.popRect = popRect;
    self.navigationController.delegate = self;
    
    Test1ViewController *test1 = [self.storyboard instantiateViewControllerWithIdentifier:@"Test1"];
//    test1.title = [NSString stringWithFormat:@"iOS%li",indexPath.row];
    test1.textImage.image = [UIImage imageNamed:[NSString stringWithFormat:@"%ld.jpg",indexPath.row+1]];
    test1.index = indexPath.row;
    test1.count = 10;//数据源个数
    
    __weak typeof(Test1ViewController *)test = test1;
    
    test1.block2 = ^{
        CGFloat height = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:test.index inSection:0]].frame.origin.y > (MAX(tableView.contentSize.height,CGRectGetHeight(tableView.bounds))-CGRectGetHeight(tableView.bounds))?(MAX(tableView.contentSize.height,CGRectGetHeight(tableView.bounds))-CGRectGetHeight(tableView.bounds)):[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:test.index inSection:0]].frame.origin.y;
        tableView.contentOffset = CGPointMake(0,height);
        [tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:test.index inSection:0] animated:YES scrollPosition:UITableViewScrollPositionNone];
    };
    
    [self.navigationController pushViewController:test1 animated:YES];
}


#pragma mark ==== UINavigationControllerDelegate

-(id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC {
    
    return [BossPushTransition new];
}

@end

相关源码推荐:

我来说两句
*滑动验证:
所有评论(22)
liujinfeng 2016-6-2 16:17:14
强烈支持楼主ing……
回复
doudou-wwcd 2016-6-2 19:42:05
强烈来看下
回复
MeeAron 2016-6-2 22:08:57
很给力,Code4App有你更精彩!
回复
BeCoder 2016-6-2 22:38:27
强烈支持楼主ing……
回复
guxx 2016-6-2 23:33:42
很给力,Code4App有你更精彩!
回复
liujinfeng 2016-6-3 08:27:02
点击cell之后 跳到第二个界面,可以上下左右滑动,上拉背景屏幕缩小,返回上一个VC,左右滑动可以切换cell, 大家可以仔细看看,有不懂的可以问我,多谢大家支持
回复
草原梦中人 2016-6-3 08:44:28
楼主很帅
回复
b13760353528 2016-6-3 08:58:07
支持致辞致辞Hi吃
回复
zs-liao 2016-6-3 09:01:29
zs-liao邀请您访问Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com
http://www.code4app.com/?fromuid=776179
回复
123下一页
1782 0 0
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表