Tôi đang tạo tính năng đánh dấu trang cho ứng dụng của mình, tôi muốn hiển thị cho người dùng điều gì xảy ra theo cách tương tự như cửa hàng itunes, khi bạn mua thứ gì đó chuyển đến tabBar. Tôi đã từng xem một số video WWDC giải thích điều này, nhưng không thể nhớ làm thế nào để làm điều đó. Bất kỳ ý tưởng mà tôi nên bắt đầu tìm kiếm?Tạo phong cách cửa hàng itunes "nhảy" hoạt hình
9
A
Trả lời
25
Bạn có thể chụp nhanh chế độ xem bạn muốn tạo hoạt ảnh, sau đó tạo lớp hình ảnh, sau đó sử dụng Hoạt ảnh lõi để tạo hiệu ứng động cho thanh tab. Đây là mã tôi sử dụng để làm điều đó:
- (void)animateSnapshotOfView:(UIView *)view toTab:(UINavigationController *)navController
{
NSUInteger targetTabIndex = [self.tabBarController.viewControllers indexOfObject:navController];
NSUInteger tabCount = [self.tabBarController.tabBar.items count];
// AFAIK there's no API (as of iOS 4) to get the frame of a tab bar item, so guesstimate using the index and the tab bar frame.
CGRect tabBarFrame = self.tabBarController.tabBar.frame;
CGPoint targetPoint = CGPointMake((targetTabIndex + 0.5) * tabBarFrame.size.width/tabCount, CGRectGetMidY(tabBarFrame));
targetPoint = [self.window convertPoint:targetPoint fromView:self.tabBarController.tabBar.superview];
UIGraphicsBeginImageContext(view.frame.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGRect frame = [self.window convertRect:view.frame fromView:view.superview];
CALayer *imageLayer = [CALayer layer];
imageLayer.contents = (id)image.CGImage;
imageLayer.opaque = NO;
imageLayer.opacity = 0;
imageLayer.frame = frame;
[self.window.layer insertSublayer:imageLayer above:self.tabBarController.view.layer];
CGMutablePathRef path = CGPathCreateMutable();
CGPoint startPoint = imageLayer.position;
CGPathMoveToPoint(path, NULL, startPoint.x, startPoint.y);
CGPathAddCurveToPoint(path,NULL,
startPoint.x + 100, startPoint.y,
targetPoint.x, targetPoint.y - 100,
targetPoint.x, targetPoint.y);
CAKeyframeAnimation *positionAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
positionAnimation.path = path;
CGPathRelease(path);
CABasicAnimation *sizeAnimation = [CABasicAnimation animationWithKeyPath:@"bounds.size"];
sizeAnimation.fromValue = [NSValue valueWithCGSize:imageLayer.frame.size];
sizeAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(50, 50)];
CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
opacityAnimation.fromValue = [NSNumber numberWithFloat:0.75];
opacityAnimation.toValue = [NSNumber numberWithFloat:0];
CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
animationGroup.animations = [NSArray arrayWithObjects:positionAnimation, sizeAnimation, opacityAnimation, nil];
animationGroup.duration = 1.0;
animationGroup.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
animationGroup.delegate = self;
[animationGroup setValue:imageLayer forKey:@"animatedImageLayer"];
[imageLayer addAnimation:animationGroup forKey:@"animateToTab"];
}
Các vấn đề liên quan
- 1. Cửa hàng iTunes iTunes quốc gia
- 2. Phong cách cửa sổ WPF không hoạt động khi chạy
- 3. iTunes U phong cách download/tiến độ/dừng/nút play
- 4. Tạo liên kết liên kết đến cửa hàng iTunes mà không cần chuyển hướng?
- 5. Không thể kết nối với lỗi cửa hàng iTunes
- 6. Có thể tạo URL cho các mục trên cửa hàng Apple iTunes theo chương trình không?
- 7. Làm cách nào để xây dựng dự án xcode cho cửa hàng itunes?
- 8. Lỗi khi cố gắng tạo người dùng thử ứng dụng cửa hàng iTunes; Không thể chuyển đổi tài khoản Apple ID sang tài khoản iTunes Store
- 9. Cách tạo mô hình "sản phẩm" trong ứng dụng cửa hàng trực tuyến
- 10. Hình ảnh người dùng cửa hàng Django trong mô hình
- 11. Chụp màn hình cửa hàng Windows App
- 12. lập trình thêm phong cách kích hoạt
- 13. Cách tạo hoạt ảnh theo phong cách UIView trong phát triển ứng dụng Cocoa/Mac
- 14. Nhóm hoạt hình UITableView hàng hoạt hình quirks
- 15. Hoạt hình Jquery xếp hàng
- 16. Dừng jQuery (true, true) để nhảy đến cuối tất cả các hình động trong hàng đợi
- 17. CoreData với nhiều cửa hàng: cấu hình tai họa
- 18. silverlight datagrid - ràng buộc mỗi phong cách của hàng
- 19. Hoạt hình các hàng trong một NSTableView
- 20. iTunes không hiển thị hình ảnh podcast
- 21. iTunes Kết nối Tải lên hàng loạt ảnh chụp màn hình cho nhiều ngôn ngữ
- 22. Cách tốt nhất để tạo số đơn đặt hàng cho cửa hàng trực tuyến?
- 23. ExtJS 4: Lưới/Cửa hàng không có Mô hình
- 24. Hình thức phong bì CSS3
- 25. chuyển Phong cách khi sử dụng setViewControllers: hoạt hình: trên UINavigationController
- 26. Tạo phong cách Tinyurl của riêng bạn uid
- 27. Cửa hàng Connect-redis không hoạt động với socket.io
- 28. Cách tính hình ảnh có phong cảnh hay chân dung
- 29. Tại sao các đại biểu theo phong cách .NET không phải là đóng cửa trong Java?
- 30. Thuộc tính chủ đề và phong cách cho hình nền
Tuyệt vời! Tôi chỉ về cơ bản một hình ảnh mà tôi cần phải trả lại cho tabbar, tôi nghĩ rằng điều này sẽ làm tốt! –
Cảm ơn Daniel, điều đó thực sự đã giúp! :) – Wasim