切换UIView动画

首先添加拖动手势:

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(completeAction:)];
    [music addGestureRecognizer:pan];
//CGAffineTransformRotate(view.transform, minus*M_PI/180) 是在原来的角度上进行追加,CGAffineTransformMakeRotation(180*M_PI/180)直接旋转成某个角度。
- (void)completeAction:(UISwipeGestureRecognizer *)sender {
    switch (sender.state) {
        case UIGestureRecognizerStateBegan:
        {
            startPoint = [sender locationInView:self.view];
        }
            break;
        case UIGestureRecognizerStateChanged:
        {
            CGPoint point = [sender locationInView:self.view];
            CGFloat minus = point.x - startPoint.x;
            startPoint = point;
            angle += minus*M_PI/180;
            CGAffineTransform trans = CGAffineTransformRotate(view.transform, minus*M_PI/180); //
            view.transform = trans;
        }
            break;
        case UIGestureRecognizerStateEnded:
        {
            if (angle > 0.5) {
                [UIView animateWithDuration:1 delay:0 usingSpringWithDamping:0.3 initialSpringVelocity:0 options:0 animations:^{
                    view.transform = CGAffineTransformMakeRotation(180*M_PI/180);
                } completion:^(BOOL finished) {
                    [view removeFromSuperview];
                    view = nil;
                }];
            } else {
                view.transform = CGAffineTransformMakeRotation(0);
            }
            angle = 0;
        }
            break;
        default:
            break;
    }
}

以任意点进行旋转

- (void)setAnchorPoint:(CGPoint)anchorpoint forView:(UIView *)view{
    CGRect oldFrame = view.frame;
    view.layer.anchorPoint = anchorpoint;
    view.frame = oldFrame;
}

tabbar创建

- (void)viewDidLoad {
    [super viewDidLoad];

    NSArray *childItemsArray = @[
                                 @{kClassKey  : @"HomeViewController",
                                   kTitleKey  : @"微信",
                                   kImgKey    : @"tabbar_mainframe",
                                   kSelImgKey : @"tabbar_mainframeHL"},

                                 @{kClassKey  : @"ContactsViewController",
                                   kTitleKey  : @"通讯录",
                                   kImgKey    : @"tabbar_contacts",
                                   kSelImgKey : @"tabbar_contactsHL"},

                                 @{kClassKey  : @"DiscoverViewController",
                                   kTitleKey  : @"发现",
                                   kImgKey    : @"tabbar_discover",
                                   kSelImgKey : @"tabbar_discoverHL"},

                                 @{kClassKey  : @"MeViewController",
                                   kTitleKey  : @"我",
                                   kImgKey    : @"tabbar_me",
                                   kSelImgKey : @"tabbar_meHL"} ];

    [childItemsArray enumerateObjectsUsingBlock:^(NSDictionary *dict, NSUInteger idx, BOOL *stop) {
        UIViewController *vc = [NSClassFromString(dict[kClassKey]) new];
        vc.title = dict[kTitleKey];
        BaseNavigationController *nav = [[BaseNavigationController alloc] initWithRootViewController:vc];
        UITabBarItem *item = nav.tabBarItem;
        item.title = dict[kTitleKey];
        item.image = [UIImage imageNamed:dict[kImgKey]];
        item.selectedImage = [[UIImage imageNamed:dict[kSelImgKey]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        [item setTitleTextAttributes:@{NSForegroundColorAttributeName : kThemeColor} forState:UIControlStateSelected];
        [self addChildViewController:nav];
    }];
    self.selectedIndex = 1;
}

转载于:https://my.oschina.net/u/1763048/blog/746371

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值