2012-07-14 3 views
0

버튼 + 텍스트 필드가있는 scrollView가 있으며 한 요소에 데이터가 입력되면 scrollview가 다음 요소로 스크롤됩니다. frame 구성 요소를 통해 각 요소 위치에 액세스합니다.UIButton 프레임 좌표는 뷰 이동 후 업데이트되지 않습니다.

그러나 사용자는 모두 요소를 페이지 아래쪽으로 의도적으로 이동하는 이미지를 업로드 할 수 있습니다. 이렇게하면 다음 요소 기능으로 스크롤이 완전히 끊기고 인 요소가있는 으로 스크롤됩니다. 의미는 각각 UIButton, UITextField에 대한 구성 요소가 업데이트되지 않습니다.

모든 요소를 ​​아래로 이동하면 어떻게 좌표가 업데이트됩니까? frame을 사용해야합니까?

필드는 실제로보기에 있으며 그 다음에 UIScrollView 상단에 있습니다. 이미지를 추가 할 때 프레임을 화면 아래로 이동하여 필드보기를 이동합니다. 각 버튼/필드 자체를 이동하지는 않습니다.

- (void)scrollViewToNextElement:(CGRect)frame { 
[self.scrollView scrollRectToVisible:CGRectMake(frame.origin.x,frame.origin.y, scrollView.frame.size.width, scrollView.frame.size.height) animated:YES]; 
} 

트리거 조치 :

-(void)button1TextEntered{ 
// Now go to the next button 
[self scrollViewToNextElement:button2.frame]; 

}

+0

당신은 요소의'center' 속성을 사용할 수 있습니다. 매번'frame' 속성을 변경하는 것보다 빠릅니다. (왜냐하면'center' 속성은 요소의 크기를 재정의하지 않기 때문입니다) – holex

답변

0

이있는 ScrollView 프레임을 가지고 어떤 값으로 프레임 origin.y을 줄일 수 있습니다. 값을 입력하고 Enter 키를 누르면 scrollview origin.y 값이 위로 이동합니다. 이렇게하면 고칠 수 있습니다.

관련 문제