2013-05-18 4 views
1

하나의 테이블 뷰와 하나의 이미지 뷰가 있으며, 각 뷰는 화면 절반을 차지합니다. 사용자가 이미지 뷰에서 스 와이프하고 표 셀을 선택하면 이미지 뷰에 애니메이션을 적용하려고합니다. 나는 슬쩍 후 전화를하지만 UITableView 클래스 인스턴스에서 호출 할 때 작동하지 않는 경우애니메이션 UIView from UITableView

@interface X() 
@property (strong, nonatomic) IBOutlet UIImageView *ImagePreview; 
@property (strong, nonatomic) IBOutlet UITableView *table; 
@end 

@implementation X 
- (void)handleGestureRight:(UISwipeGestureRecognizer *)sender { 
     [self ShowAnimation:_ImageGalaryPreview]; 
} 
-(void)ShowAnimation:(UIImageView *)view{ 
      [UIView beginAnimations: @"Slide Image" context: NULL]; 
       [UIView setAnimationDuration: 1]; 
       [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:view cache:NO]; 
       [UIView commitAnimations]; 
} 
@end 

그것은 완벽하게 작동합니다

나는이 코드를 사용!

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    [self ShowAnimation:_ImageGalaryPreview]; 
} 

아무도 말해 줄 수 있습니까?!

+0

그것을 해결? –

+0

첫 번째 코드는 어디에 있습니까? – Shamsiddin

+0

첫 번째 코드는 어떻게 호출 했습니까? 그것은 누군가 방법에 위치하고 있습니까? 그럼이 방법을 어떻게 부르셨습니까? – Shamsiddin

답변

1

는 아래로, 그것은 확실히 작동합니다 당신의 호출 방법을 사용 즐길 필요가있다. didSelectRowAtIndexPath 방법에서의 라인 중에 indexPath.row 관련된 것을 포함하지 않기 때문에, 사용자가 테이블 행 도청 때

-(void)stuff 
{ 
    [UIView beginAnimations: @"Slide Image" context: NULL]; 
    [UIView setAnimationDuration: 1]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:ـImagePreview cache:NO]; 
    [UIView commitAnimations]; 
} 


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
    [self performSelectorOnMainThread:@selector(stuff) withObject:nil waitUntilDone:NO]; 
    } 
+0

감사합니다. 동일한 클래스의 두보기 컨트롤러를 설정 한 후에 작동했습니다. –

0

는 그냥 .... 이미지 뷰의 위치에있는 tableview의보기를 통과 작동 확인 ..

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
[UIView beginAnimations: @"Slide Image" context: NULL]; 
[UIView setAnimationDuration: 1]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView: tableView cache:NO]; 
[UIView commitAnimations]; 
} 
+0

테이블을 애니메이션화하지 않으려 고합니다. 애니메이션을 적용하고 싶습니다. 이미지 뷰를 넣은 테이블 –

+0

외부의 imageView? –

+0

주보기에서 나는 하나의 테이블보기와 하나의 이미지보기를 가지고 있으며, 각 하나는 화면의 절반을 차지합니다. –

0

아무 변화가 없다. 어쩌면 다음과 같은 것을 시도해보십시오.

@interface ViewController() { 
    NSInteger selectedrow; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSIndexPath *selectedIndexPath = [table indexPathForSelectedRow]; 
    selectedrow = indexPath.row; 
    if (indexPath.row >= 0) { 
     [UIView beginAnimations: @"Slide Image" context: NULL]; 
     [UIView setAnimationDuration: 1]; 
     ... 
     ... 
     ImagePreview = ... [array objectAtIndex:selectedrow]... 

    } 
} 

- (void)viewDidLoad { 
    selectedrow = -1; 
} 

그래도 코드와 UIImageView가 어떤 관련이 있는지 알지 못합니다. 당신의 응답을

+0

시도해 보았지만 작동하지 않았습니다. –

+0

기본 사항부터 시작하는 것이 좋습니다. –

0

감사는이 코드로 @Hercules에

[self performSelectorOnMainThread:@selector(stuff) withObject:nil waitUntilDone:NO]; 

감사합니다 :) 뜻 방법