首先添加拖动手势:
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;
}