2013-03-22 2 views
1

여러 개의 단추가있는 uiscrollview가 있습니다. 사용자가 스크롤 뷰의 중간에 버튼을 스크롤하면 크기를 변경해야합니다. 단추를 프로그래밍 방식으로 만들고 추가했으며 각각 태그 번호를 할당했습니다. 중간에 어떤 버튼이 있는지를 어떻게 알 수 있을지 모르겠습니다. 그래서 그것을 바꿀 수 있습니다. 어떤 사람이 이렇게 한 적이 있습니까?UIScrollView 중간에있는 단추의 크기 변경

+0

scrollView.contentOffset을 사용하여 각 버튼의 frame.origin과 비교 하시겠습니까? – verec

답변

1

버튼이 scrollView의 가운데에 있는지 확인하려는 곳에 다음 코드를 입력하십시오.

for (UIView *view in scrollView.subviews) { 

    if ([view isKindOfClass:[UIButton class]]) { 

     CGRect visibleRect = CGRectMake(scrollView.contentOffset.x, scrollView.contentOffset.y, scrollView.frame.size.height, scrollView.frame.size.width); 
     CGRect centerRect = CGRectInset(visibleRect, 30, 30); 
     BOOL isCentered = CGRectIntersectsRect(view.frame, centerRect); 

     if (isCentered) { 
      // the button is centered in the scroll view... 
     } 
    } 

} 

isCentered는 버튼이 스크롤 뷰의 중앙에 있는지 알려줍니다. scrollView의 크기에 맞는 값으로 30 값을 변경해야합니다.

+0

감사합니다! 이것은 올바른 방향으로 나를 잡았어. – Jon

+0

중심점이 보이는 scrollview의 중앙에 있지 않다는 점을 제외하고는 왼쪽에 더 많은 것처럼 보입니다. scrollview는 320w x 105h이고 버튼은 50w x 50h입니다. 또한 scrollViewDidScroll 델리게이트 내부를 검사하고 있습니다. 스크롤 뷰의 중심에서 더 많이 얻는 방법에 관한 아이디어는 아직까지는 남아 있지 않습니까? 이 일을 도와 주셔서 다시 한 번 감사드립니다. – Jon