현재 UIScrollView의 contentView에 UIView가 표시되는지 확인하는 가장 쉽고 세련된 방법은 무엇입니까? 이 작업에는 두 가지 방법이 있습니다. 하나는 UIScrollView의 contentOffset.y 위치이고 다른 하나는 rect 영역을 변환하는 것입니다.UIView가 UIScrollView 표시 상태에 있는지 확인하십시오.
14
A
답변
1
귀하의 아이디어가 정확하다고 생각합니다. 그것은 나를 있었다면 내가 다음과 같이 할 것 :
//scrollView is the main scroll view
//mainview is scrollview.superview
//view is the view inside the scroll view
CGRect viewRect = view.frame;
CGRect mainRect = mainView.frame;
if(CGRectIntersectsRect(mainRect, viewRect))
{
//view is visible
}
5
이 스크롤 뷰 위임에 scrollViewDidScroll:
를 구현하고 뷰를 선택하여 예 (볼 수있는 수동으로 계산 CGRectIntersectsRect(scrollView.bounds, subview.frame)
true를 반환
15
당신이하려는 경우합니다. 뷰가 화면에 스크롤 된 경우 해결하려면 다음을 수행하십시오
CGRect thePosition = myView.frame;
CGRect container = CGRectMake(scrollView.contentOffset.x, scrollView.contentOffset.y, scrollView.frame.size.width, scrollView.frame.size.height);
if(CGRectIntersectsRect(thePosition, container))
{
// This view has been scrolled on screen
}
0
은 빠른 3
var rect1: CGRect!
// initialize rect1 to the relevant subview
if rect1.frame.intersects(CGRect(origin: scrollView.contentOffset, size: scrollView.contentSize)) {
// the view is visible
}
업데이트
관련 문제
- 1. UIView가 현재 애니메이션을 적용하고 있는지 확인하십시오.
- 2. 상태 표시 줄이 숨겨져 있는지 또는 표시되어 있는지 확인하십시오.
- 3. VimL : 기능이 있는지 확인하십시오.
- 4. 포인트가 뷰포트에 있는지 확인하십시오.
- 5. wxpython 키가 눌러져 있는지 확인하십시오.
- 6. 자녀가 있는지 확인하십시오 .3
- 7. UIView가 아직 있는지 확인하는 방법은 무엇입니까?
- 8. UIScrollView 표시 줄
- 9. UIScrollview 내부의 포함 된 UIView가 잘리는 것을 방지하는 방법
- 10. 사용자가 창을 움직이고 있는지 확인하십시오.
- 11. 기본 뷰어가 있는지 확인하십시오.
- 12. 목록이 있는지 확인하십시오.
- 13. 컨트롤이 화면에 있는지 확인하십시오.
- 14. dataGridView가 비어 있는지 확인하십시오.
- 15. 이름이 데이터베이스에 있는지 확인하십시오.
- 16. json.net 어린이가 있는지 확인하십시오.
- 17. FreeASPUpload에 파일이 있는지 확인하십시오.
- 18. 목록에 변수가 있는지 확인하십시오.
- 19. Jlabel에 아이콘이 있는지 확인하십시오.
- 20. 버튼이 비활성화되어 있는지 확인하십시오.
- 21. 세트에 충돌이 있는지 확인하십시오.
- 22. 자녀가 있는지 확인하십시오.
- 23. 개체에 포커스가 있는지 확인하십시오.
- 24. WCF 서비스가 있는지 확인하십시오.
- 25. 공백이 문자열에 있는지 확인하십시오.
- 26. 사용자가 있는지 확인하십시오 (계속 ...)
- 27. [i]가 있는지 확인하십시오.
- 28. 파일이 열려 있는지 확인하십시오.
- 29. 조치가 Kohana에 있는지 확인하십시오.
- 30. RavenDB에 속성이 있는지 확인하십시오.