2013-01-28 5 views
3

다음과 같이 사용자 정의 셀을 사용하여 테이블 뷰를 만들었습니다.사용자 정의 셀에서 버튼 프레임의 x, y 위치를 찾는 방법

! [사용자 셀] [1]

! [낼 테이블 뷰] [2]

난 각 셀

enter image description here

대신 슬라이더 선택기를 사용하여 등급을 설정해야

버튼 위치에 맞추기 만하면 피커 위치를 설정해야합니다. 버튼 위치에 따라 달라집니다.

달성 방법 그것.

IU 대신 "를를 사용하는 FRAM에 다음과 같은 & 경계를 시도했지만 같은 vaues에게 당신은 두 번".x를 "값을 사용하여 마지막 줄에 오타가있을 때마다

- (IBAction) buttonClicked:(UIButton *)sender 
    {  
      NSLog(@"------%f %f",sender.frame.origin.x , sender.frame.origin.y); //250, 2 

     NSLog(@"------%f %f",sender.bounds.origin.x , bounds.frame.origin.y); // 0.0 , 0.0 

     picker.frame = CGRectMake(sender.bounds.origin.x , sender.bounds.origin.y, 50, 216); 
} 

답변

5

을 제공합니다. y "두 번째 값.

또한 좌표를 피커가 표시되는 뷰의 좌표로 변환해야합니다. 피커를 표시하는 코드를 포함하면 도움이됩니다.

그것은이 같은 것입니다 :하지만 여전히이 기본보기 사용에 대한 버튼 프레임을 얻으려면

picker.frame = [viewThatYouAreDisplayingThePickerIn convertRect:sender.frame fromView:sender.superview]; 
1

을 :

CustomCell *cell = (CustomCell *)[self.table cellForRowAtIndexPath:indexPath]; 

CGRect buttonFrame = [cell.superview convertRect:cell.customButton.frame toView:self.view]; 
+0

어디에서'indexPath'를 얻을 것을 제안합니까? :-) – lnafziger

+0

그 때 cellforrowatindexpath에 셀을 만들면 버튼에 태그를 부여한 다음 해당 태그를 사용하여 [NSIndexPath indexPathForRow : button.tag inSection : 0]과 같은 indexpath를 만들 수 있습니다. – Bhupendra

+0

글쎄, 그 방법 중 하나입니다 그것 .... 그가하려고하는 것을 위해 많은 일처럼 보입니다. :) (다른 방법으로이 테크닉을 사용하고 싶다면, 앞의 나의 대답에서 볼 수 있듯이 테이블 뷰의'indexPathsForRowsInRect' 메쏘드를 사용하는 것이 훨씬 쉽습니다 : http://stackoverflow.com/a/태그 대신 14352372/937822). – lnafziger

0

이 버튼을 locationInView라는 이름의 방법은 상속 from UITouch

Returns the current location of the receiver in the coordinate system of the given view. 
- (CGPoint)locationInView:(UIView *)view 

Apple Developer Reference

관련 문제