2013-03-06 1 views
0

저는 iOS 프로그래밍을 처음 접했고 어쩌면 UIScrollView을 완전히 이해하지 못했습니다. 내가 조사한 바에 따르면 스크롤보기를 만드는 모든 방법에는 UIScrollViewUIView 또는 UIImageView을 삽입하는 것이 포함됩니다. 그러나 개체 (UILabel, UIButton ...)를 직접 드래그 할 수있는 방법이 있는지 여부는 UIScrollView으로 알 수 없습니다. 그리고 UIScrollView의 크기가 화면보다 크게 설정된 경우 UIScrollView의 모든 항목을 스크롤 할 수 있습니다. 다시 말하지만, 그건 내 모든 생각이고, 나는 이것을 확인하거나 부인하는 어떠한 게시물도 찾지 못한다. 가능한 경우 스크롤 가능한 화면을 설정하는 것이 가장 쉬운 방법이라고 생각합니다.UIScrollView에 직접 항목을 추가 할 수없는 이유는 무엇입니까?

그럴 수 없다면 누구나 UIButton (세로 방향)의 긴 목록을 스크롤하는 쉬운 방법을 가리킬 수 있습니까? 많은 자습서를 찾았지만 대부분은 UIImageView을 스크롤하는 데 사용되며 UIViewUIButton의 목록이 포함 된 메서드를 채택 할 수 없습니다. 도와 주셔서 대단히 감사합니다.

저는 iOS 5 및 스토리 보드 모드입니다.

답변

0

Scrollview을 위해 중대하다 documents, images, webviews, 등등 ...

그러나 그것은 고통의 약간의 UI의 레이아웃

.

buttons을 수직으로 배치하는 경우 UITableView을 사용하여 레이아웃을 관리 할 수 ​​있습니다.

UITableView은 데이터 목록을 표시하는 것 이상으로 좋습니다.

scrollView을 고수하려면 새로운 UIView nib 파일을 만들어 원하는 전체 크기로 만들 수 있습니다. 모든 버튼을 드래그 한 다음이 UIView을 코드를 사용하여 scrollView에 삽입하십시오.

그런 식으로 IB를 사용하여 레이아웃을 만들었지 만 코드를 사용하여 buttons 등을 모두 scrollview에 넣으십시오. UIImageView, UILabel는, UIButtonUIView의 후손이다

+0

'UITableView'를 사용하고 싶지 않은 이유는 직접 셀에 동작 (터치)을 추가 할 수 없다는 것과 내가 검색 한 솔루션이 스크롤하려는 경우보다 복잡하다는 것입니다 'UIVIew'의 버튼 목록. – zyl1024

+0

그런 다음 내가 제안한 두 번째 대안을 사용하십시오. – Fogmeister

+0

@ zyl1024 셀에 터치를 추가하는 것은 사실 쉽지 않습니다. 셀 선택을 차단하고 탭 인식기를 테이블에 추가하기 만하면됩니다. – Sulthan

2

때문에 당신은 addSubview: 방법을저기서 그 클래스의 인스턴스를 추가 할 수 있습니다.

또한보기 프레임을 올바르게 설정해야합니다.

scrollable content size를 화면 크기보다 크게하려면 scrollView.contentSize를 필요한 값으로 설정해야합니다.

1

원인. 케이스 UILabel, UIButton ... subClassUIView입니다. UIViewScrollView에 추가 할 수 있습니다. 추가 할 수도 있습니다. 따라서 에서 오는 UIScrollView도 마찬가지입니다.

View을 사용하여 button 버튼을 쉽게 관리 할 수 ​​있습니다.

버튼의 모든 프레임을 계산해야합니다. 동일한 레이아웃 기능을 가지고 있다면 tableView을 사용하고 싶습니다.

+0

'UITableView'를 사용하고 싶지 않은 이유는 직접 셀에 동작 (터치)을 추가 할 수 없다는 것과 내가 검색 한 솔루션이 목록을 스크롤하고 싶다면 무엇을해야하는지보다 복잡하다는 것입니다 UIVIew에서 단추를 누르십시오. – zyl1024

+0

나는 본다. 글쎄, 당신은 tableView의 원리의 실현에 대한 몇 가지 기사를 찾을 수 있습니다. 플라이 웨이트 패턴을 사용하여 메모리 캐스팅을 줄입니다. scrollView에서 똑같은 작업을 수행 할 수 있습니다. 또는 많은 버튼을 추가하면 메모리에 쉽게 표시되도록 경고합니다. – junkor

0

스토리 보드에서 저는 UILabel 등을 스크롤보기에 직접 추가하지 말 것을 제안합니다. 그것은 할 수 있지만 스크롤보기의 포함 된보기에서 하나의보기 (또는 매우 fiew)를 직접 갖는 것이 더 쉽다는 것을 알았습니다. 특히 단일보기가 화면보다 큰 경우

그래서 내가 일반 UIView 개체 하나를 만들 것을 제안합니다. IB에서 UIView를 그리는 데 자유형 크기를 사용합니다. 그것은 스크롤 뷰에 대한 유일한 하위 뷰일 것입니다. 이 뷰 내에서 모든 ui 항목을 쉽게 정렬하고 재정렬 할 수 있습니다. 그러나 autolayout을 사용하지 않고보기가 하위보기의 크기를 조정하지 않고 스크롤보기가 하위보기를 자동 크기 조정하지 않았는지 확인하십시오. 그렇지 않으면 화면보다 큰 것으로 가정 된 적절히 배치 된보기를 화면 (각 창의 사용 가능한 부분) 크기로 잠글 수 있습니다.

관련 문제