2010-01-23 6 views
1

나는 TableView를 사용했으며 Disclosure Button을 클릭하여 Disclosure Button을 사용했습니다. 특정 이미지가 하나 있습니다. 내가 Disclosure Button을 누르면 오리 엔테이션을 수행하는 특정 이미지를 가져와야합니다. 그래서 어떻게 할 수 있습니까? 도와주세요. 나는 이런 종류의 응용에서 새로운 것이다.버튼의 클릭 이벤트로 방향을 어떻게 바꿀 수 있습니까?

답변

2

테이블을 수동으로 변환해야합니다. 다음은 UITableView를 중심 주위로 생성하고 회전시키는 코드입니다.

// this defines a constant PORTRAIT_FRAME, which is the frame of the iPhone screen 
// minus the Status Bar. Equivalent to CGRectMake(0,20,320,460). 
#define PORTRAIT_FRAME [[UIScreen mainScreen] applicationFrame] 

// this defines a constant LANDSCAPE_FRAME, for orienting the table sideways 
#define LANDSCAPE_FRAME CGRectMake(0,20,480,300) 


// this function assumes you have a class variable called myTableView 
// and it toggles the orientation of myTableView 
- (void) rotateTable { 

    if (myTableView.transform == CGAffineTransformMakeRotation(0)) { 
    // rotate the image by 90 degrees 
    myTableView.transform = CGAffineTransformMakeRotation(M_PI/2); 
    myTableView.frame = LANDSCAPE_FRAME; 
    return; 
    } 

    // set the image to its original orientation 
    myTableView.transform = CGAffineTransformMakeRotation(0); 
    myTableView.frame = PORTRAIT_FRAME; 

} 

버튼 클릭시이 회전을 트리거하려면 UIButton을 선언하고이 함수를 동작으로 할당하십시오. 다음은 UIButton을 만드는 함수입니다. 액션의 경우 "rotateImage"를, 타겟의 경우 self를 전달하십시오.

+ (UIButton*) getButtonAtPoint:(CGPoint)point 
          target:(id)target 
          action:(NSString*)action { 

    UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
    [button addTarget:target 
      action:NSSelectorFromString(action) 
    forControlEvents:UIControlEventTouchUpInside]; 
    return button; 
} 
+0

많은 도움을 주셔서 감사합니다하지만 실제로 테이블보기를 사용하고 내 단추가 정상적인 단추가 아니지만 공개 단추가 어떻게이 코드를 사용할 수 있습니까? – Viral

+0

myTable.transform = foo 인 imageView ...의 변환을 설정하는 것과 완전히 같은 방법으로 TableView의 변형을 설정할 수 있습니다. 또한 Disclosure 버튼은 단지 UIButton 유형입니다. 해당 유형의 버튼을 사용하려면 위 코드를 편집합니다. –

+0

확인 보스! 고맙습니다 ..... – Viral

0

UIApplication의 setStatusBarOrientation : animated :를 사용하고 톱 레벨 뷰를 수동으로 회전/크기 조정해야 할 수도 있습니다. UIView의 애니메이션 블록 메서드를 사용하는 경우 애니메이션 블록 내에서이 작업을 수행하고 기본적으로 동일한 효과를 얻으려면 커밋 할 수 있어야합니다. 나 자신을 시도하지 않았다.

+0

버튼 클릭 이벤트에서이 작업을 수행해야하므로 예제를 보여줄 수 있습니까? – Viral

관련 문제