programing

UIScroll View 콘텐츠란부동산 삽입 대상?

cafebook 2023. 4. 13. 21:09
반응형

UIScroll View 콘텐츠란부동산 삽입 대상?

누가 설명 좀 해줄래?contentInset의 재산UIScrollView인스턴스는 어디에 사용됩니까?예를 들면요?

내용 보기와 둘러싸인 스크롤 보기 사이의 삽입 거리를 설정합니다.

Obj-C

aScrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 7.0);

Swift 5.0

aScrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 7.0)

스크린샷을 사용한 스크롤 뷰에 관한 iOS 레퍼런스 라이브러리의 좋은 기사(그림 1-3)는 다음과 같습니다.여기서 텍스트로 복제하겠습니다.

  _|←_cW_→_|_↓_
   |       | 
---------------
   |content| ↑
 ↑ |content| contentInset.top
cH |content|
 ↓ |content| contentInset.bottom
   |content| ↓
---------------
  _|_______|___ 
             ↑


   (cH = contentSize.height; cW = contentSize.width)

스크롤 뷰에는 콘텐츠뷰와 지정된 콘텐츠인스톨에 의해 제공되는 패딩이 포함됩니다.

jball의 답변은 콘텐츠 삽입물에 대한 훌륭한 설명이지만, 언제 사용할지에 대한 질문에는 답변하지 않습니다.그의 도표를 참고해 보겠습니다.

  _|←_cW_→_|_↓_
   |       | 
---------------
   |content| ↑
 ↑ |content| contentInset.top
cH |content|
 ↓ |content| contentInset.bottom
   |content| ↓
---------------
   |content|    
-------------↑-

이 기능을 사용하면 다음과 같은 효과를 얻을 수 있지만, 이 기능의 유용성은 스크롤할 때만 나타납니다.

  _|←_cW_→_|_↓_
   |content| ← content is still visible
---------------
   |content| ↑
 ↑ |content| contentInset.top
cH |content|
 ↓ |content| contentInset.bottom
   |content| ↓
---------------
  _|_______|___ 
             ↑

컨텐츠의 맨 위 행은 스크롤 보기의 프레임 안에 있기 때문에 계속 표시됩니다.상단 오프셋을 생각할 수 있는 한 가지 방법은 "맨 위로 스크롤할 때 콘텐츠를 스크롤 보기로 얼마나 이동해야 하는지"입니다.

이것을 실제로 사용하고 있는 장소를 확인하려면 , iPhone 의 내장 포토 앱을 봐 주세요.탐색 모음과 상태 표시줄은 투명하며 스크롤 보기의 내용이 아래에 표시됩니다.스크롤 뷰의 프레임이 그만큼 넓어지기 때문입니다.그러나 콘텐츠가 삽입되지 않았다면 맨 위로 이동할 때 투명 탐색 막대를 컨텐츠 맨 위에 선명하게 표시할 수 없었을 것입니다.

컨텐츠 인스톨은, 유저 인터페이스의 다른 부분아래에 있는 컨텐츠가 스크롤 바를 사용해 도달 가능한 상태로 남아 있는 문제를 해결합니다.즉, Content Inset의 목적은 상호작용 영역을 실제 영역보다 작게 만드는 것입니다.

화면의 논리 영역이 3개 있는 경우를 생각해 봅시다.

TOP BUTTONS

TEXT

BOTTOM TAB BAR

TEXT는 상단 버튼 아래에 투명하게 표시되지 않도록 하고 하단 탭 바 아래에 표시하되 스크롤을 허용하여 하단 탭 바 아래에 있는 텍스트를 투명하게 업데이트해야 합니다.

그런 다음 상단 원점을 TOP 버튼 아래로 설정하고 하단 탭 바의 하단을 포함하도록 높이를 설정합니다.하단 탭 바의 내용 아래에 있는 텍스트에 액세스하기 위해 하단 삽입물을 하단 탭 바의 높이로 설정합니다.

삽입이 없으면 스크롤러는 내용을 위로 스크롤하여 입력할 수 없습니다.인스톨에서는, 컨텐츠의 사이즈의 여분의 「BLANK CONTENT」를 컨텐츠에 가지는 것과 같습니다.빈 텍스트가 실제의 「콘텐츠」에 「삽입」되어 있습니다.그것이 제가 그 개념을 기억하는 방법입니다.

UIScrollView

contentInset테이블 뷰는 다음과 같습니다.

여기에 이미지 설명 입력

으로 " " " 를 설정합니다.contentInset:

tableView.contentInset = UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0)

효과는 다음과 같습니다.

여기에 이미지 설명 입력

좀 나아진 것 같죠?

그리고 나는 블로그를 써서 연구한다.contentInset

좋은 질문입니다.

예시를 생각해 봅시다(</FONT CHANGE:/FONT CHANGE:</FONT CHANGE:>scroller는 [ View입니다. : [ UIScroll View ](UIScroll View)입니다.

float offset = 1000;
[super viewDidLoad];
for (int i=0;i<500; i++) {
    UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(i * 100, 50, 95, 100)] autorelease];
    [label setText:[NSString stringWithFormat:@"label %d",i]];
    [self.scroller addSubview:label];
    [self.scroller setContentSize:CGSizeMake(self.view.frame.size.width * 2 + offset, 0)];
    [self.scroller setContentInset:UIEdgeInsetsMake(0, -offset, 0, 0)];
}

삽입은 스크롤러가 원하는 콘텐츠에 "창"을 표시하도록 강제하는 유일한 방법입니다. 이 코드를 하여, 「창「창」으로 설정합니다.UIScrollView.

언급URL : https://stackoverflow.com/questions/1983463/whats-the-uiscrollview-contentinset-property-for

반응형