[ios] UIScrollView가 스크롤되지 않음

나는 UIScrollView많은 UIImageViews, UILabels 등 을 포함하고 있습니다 … 라벨이 훨씬 길지만 UIScrollView앱을 실행할 때 클릭하고 아래로 스크롤 할 수 없습니다 …

왜 이것이 될 수 있습니까?

감사



답변

항상 완전한 작업 코드 스 니펫을 표시하는 것이 좋습니다.

// in viewDidLoad (if using Autolayout check note below):

UIScrollView *myScrollView;
UIView *contentView;
// scrollview won't scroll unless content size explicitly set

[myScrollView addSubview:contentView];//if the contentView is not already inside your scrollview in your xib/StoryBoard doc

myScrollView.contentSize = contentView.frame.size; //sets ScrollView content size

스위프트 4.0

let myScrollView
let contentView

// scrollview won't scroll unless content size explicitly set

myScrollView.addSubview(contentView)//if the contentView is not already inside your scrollview in your xib/StoryBoard doc

myScrollView.contentSize = contentView.frame.size //sets ScrollView content size

IB에서 contentSize를 설정하는 방법을 찾지 못했습니다 (Xcode 5.0 기준) .

참고 : 자동 레이아웃을 사용하는 경우이 코드를 넣는 가장 좋은 -(void)viewDidLayoutSubviews방법 은 메서드 안에 있습니다.


답변

contentSize를 올바르게 설정 한 후에도보기를 스크롤 할 수 없으면 Interface Builder-> File Inspector에서 “AutoLayout 사용” 을 선택 취소 하십시오.


답변

contentSize스크롤보기가 제대로 스크롤 되려면 스크롤보기 의 속성 을 설정해야합니다 .

당신이 자동 레이아웃을 사용하는 경우 설정해야합니다 contentSizeviewDidLayoutSubviews그것이 자동 레이아웃이 완료된 이후에 적용하기 위해.

코드는 다음과 같습니다.

-(void)viewDidLayoutSubviews
{
    // The scrollview needs to know the content size for it to work correctly
    self.scrollView.contentSize = CGSizeMake(
        self.scrollContent.frame.size.width,
        self.scrollContent.frame.size.height + 300
    );
}


답변

위의 답변은 정확합니다-스크롤을 발생 시키려면 내용 크기를 설정해야합니다.

인터페이스 빌더를 사용하는 경우이를 수행하는 깔끔한 방법은 사용자 정의 런타임 속성을 사용하는 것입니다. 예 :

여기에 이미지 설명을 입력하십시오


답변

콘텐츠 크기를 큰 숫자로 조정하십시오. 내용 크기가 제어 크기보다 큰 경우에도 스크롤보기가 스크롤되지 않는 이유를 이해할 수 없었습니다. 콘텐츠 크기가 필요한 것보다 작 으면 작동하지 않는다는 것을 알았습니다.

self.scrollView.contentSize = CGSizeMake(2000, 2000);

2000 대신에 큰 숫자를 입력 할 수 있습니다. 그리고 그것이 작동한다면, 크기를 조정할 때 콘텐츠 크기가 충분하지 않다는 것을 의미합니다.

스크롤보기가 작동하는 데 위임이 필요하지 않습니다.


답변

스크롤보기의 contentSize 속성이 올바른 크기로 설정되어 있는지 확인하십시오 (예 : 모든 내용을 포함하기에 충분한 크기).


답변

‘자동 레이아웃 사용’을 선택 취소하면 나에게 속임수가 있습니다.

환경 : xCode 5.0.2 스토리 보드 ios7