2010-03-27 31 views
7

Tôi đang sử dụng mã này cho hiệu ứng Page curl .... Tác phẩm của nó hoạt động tốt trong trình mô phỏng và thiết bị ... Nhưng không phải (setType: @ "pageCurl") từ chối do Chương trình phát triển iPhone trong quá trình xem xét App Store:Hiệu ứng cuộn tròn trang Iphone

animation = [CATransition animation]; 
[animation setDelegate:self]; 
[animation setDuration:1.0f]; 
animation.startProgress = 0.5; 
animation.endProgress = 1; 
[animation setTimingFunction:UIViewAnimationCurveEaseInOut]; 
[animation setType:@"pageCurl"]; 
[animation setSubtype:@"fromRight"]; 
[animation setRemovedOnCompletion:NO]; 
[animation setFillMode: @"extended"]; 
[animation setRemovedOnCompletion: NO]; 
[[imageView layer] addAnimation:animation 
         forKey:@"pageFlipAnimation"]; 

Vì vậy, tôi đã thay đổi và sử dụng như thế này

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationBeginsFromCurrentState:YES]; 
[UIView setAnimationCurve:UIViewAnimationCurveLinear]; 
[UIView setAnimationWillStartSelector:@selector(transitionWillStart:finished:context:)]; 
[UIView setAnimationDidStopSelector:@selector(transitionDidStop:finished:context:)]; 
// other animation properties 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
         forView:imageView cache:YES]; 
// set view properties 
[UIView commitAnimations]; 

Trong đoạn code trên này tôi muốn dừng hiệu lực thi hành curl trang ở giữa chừng .. Nhưng tôi không thể ngăn chặn nó ở giữa chừng như các ứng dụng bản đồ trong ipod ... Đây có phải là bất kỳ sửa chữa cho điều này? hoặc Có bất kỳ phương pháp tài liệu táo được sử dụng cho trang curl có hiệu lực trong ipod touch?

Tôi đang tìm kiếm rất nhiều. nhưng không nhận được bất kỳ câu trả lời? Ai giúp tôi với? Cảm ơn bạn trước..plz

+0

Xin chào. Vì vậy, bạn đã sử dụng loại @pagecurl và ứng dụng đã bị từ chối? – user281300

+0

Nếu bạn muốn làm một phần curl, nhưng giữ một thanh công cụ văn phòng phẩm, như trong ứng dụng Bản đồ của Apple, hãy xem giải pháp của tôi [ở đây] (http://stackoverflow.com/a/11406056/1148702). –

Trả lời

1

Phải sử dụng hiệu ứng cuộn trang điểm dừng tại điểm? Phương pháp dễ nhất là thay thế trang curl bằng một hoạt ảnh đơn giản hơn (ví dụ: trượt) hoặc chỉ cuộn tròn toàn bộ chế độ xem.

Bạn có thể cố gắng gian lận bằng cách tạo chuỗi tại thời gian chạy, ví dụ:

[animation setType:[@"page" stringByAppendingString:@"Curl"]]; 

mặc dù bạn vẫn đang sử dụng phương pháp không có giấy tờ.

+0

Tôi tự hỏi nếu điều này sẽ trượt qua các vết nứt ... Có ai có kinh nghiệm trong việc này? – coneybeare

9

Nếu tôi có thể?

SampleViewController *sampleView = [[[SampleViewController alloc] init] autorelease]; 
[sampleView setModalTransitionStyle:UIModalTransitionStylePartialCurl]; 
[self presentModalViewController:sampleView animated:YES]; 

......

0

uốn một phần được hỗ trợ chính thức từ SDK 3.2. Kiểm tra mã mẫu của Chris. Thông tin thêm có thể được tìm thấy trong tham chiếu lớp UIViewController dưới hằng số.

+0

Điều này dường như không hoạt động giống như Bản đồ. Đó là để nói rằng bạn có thể áp dụng chuyển đổi này cho toàn bộ khung nhìn, nhưng không phải là một chế độ xem phụ và do đó thoát khỏi thanh công cụ. –

4

Tôi đã tìm thấy giải pháp để thêm UIView vào UIViewController bằng khối Hoạt ảnh.

m_Container là UIView chứa hoạt ảnh xem của tôi (tự). là một UIView.

LƯU Ý: Bạn cần có nhập khẩu QuartzCore

Để trình bày quan điểm với trang hoạt hình curl bạn có thể sử dụng:

-(void)PresentView 
{ 
    [UIView animateWithDuration:1.0 
        animations:^{ 
         CATransition *animation = [CATransition animation]; 
         [animation setDelegate:self]; 
         [animation setDuration:0.7]; 
         [animation setTimingFunction:UIViewAnimationCurveEaseInOut]; 
         animation.type = @"pageCurl"; 
         animation.fillMode = kCAFillModeForwards; 
         animation.endProgress = 0.65; 
         [animation setRemovedOnCompletion:NO]; 
         [m_container.layer addAnimation:animation forKey:@"pageCurlAnimation"]; 
         [m_container addSubview:self]; 
         ;} 
    ];  
} 

Và khi bạn muốn che giấu quan điểm này bạn có thể sử dụng:

-(void)HideHelpView 
{ 
    [UIView animateWithDuration:1.0 
        animations:^{ 
         CATransition *animation = [CATransition animation]; 
         [animation setDelegate:self]; 
         [animation setDuration:0.7]; 
         [animation setTimingFunction:UIViewAnimationCurveEaseInOut]; 
         animation.type = @"pageUnCurl"; 
         animation.fillMode = kCAFillModeForwards; 
         animation.startProgress = 0.35; 
         [animation setRemovedOnCompletion:NO]; 
         [m_container.layer addAnimation:animation forKey:@"pageUnCurlAnimation"]; 
         [self removeFromSuperview]; 

         ;} 
    ]; 

} 

Tôi hy vọng tôi đã giúp bạn.

+0

Mã này không chính xác. Các đối số cho CATransition setTimingFunction: thuộc loại UIViewAnimationCurve, không phải là CAMediaTimingFunction. Sử dụng hàm CAMediaTimingFunctionWithName: để nhận hàm thời gian. – titaniumdecoy

+0

mã của bạn đã giải quyết được vấn đề của tôi về lời cảm ơn curl và uncurl ...... – Leena

+0

không có vấn đề Tôi rất vui được giúp bạn :) – TheRonin

Các vấn đề liên quan