>

코딩없이 새로운 xcode 프로젝트 만 만들었습니다. 방금 스토리 보드에서 일했습니다. 거기에 내비게이션 컨트롤러가 있습니다. 내 RootViewController에는 3 섹션 (그룹화 된)에 정적 셀이있는 TableView가 있습니다. 섹션 헤더를 삭제했습니다. 다음 단계는 섹션 사이의 거리를 변경하는 것이 었습니다. 상단에는 4, 하단에는 4라고했습니다. 이제 다음과 같이 보입니다 :

이제 내 문제 : 첫 번째 섹션과 상단 사이의 크기가 실제로 큽니다 (섹션 사이의 자동 거리이기 때문에 32라고 생각합니다). 내가 찾은 곳은 크기 관리자-내용 삽입물이었습니다. 자동으로 설정되어 있습니다. 옵션이 없으면 나 자신에게 몇 가지 가치를 넣을 수 있습니다. 내가 선택하지 않으면 섹션이 루트 뷰 컨트롤러 헤더 아래에 표시됩니다. 내 크기 관리자는 다음과 같습니다.

ViewController 상단과 첫 번째 섹션 사이의 크기를 줄이는 방법을 알려줄 수 있습니까? 정확히 첫 번째 섹션과 Root View Controller의 헤더 사이의 크기는 16입니다.

다가오는 내비게이션 컨트롤러가 첫 번째 섹션과 헤더 사이의 크기가 16 인 테이블 뷰를 갖도록 전체 프로젝트를 변경하는 방법이 있습니까?

내가 시도한 것 :이 질문을 찾았습니다 iOS7에서 UITableViewStyleGrouped 스타일로 UITableView 상단에 왜 추가 패딩이 있습니까? 여기서 누군가가 tableViews를 요청했습니다. 일반. 내가 읽은 솔루션은 저에게 효과적이지 않습니다.

  • 스크롤보기 삽입 조정을 끕니다. 나는 네비게이션 컨트롤러뿐만 아니라 루트에서도 이것을 시도했다. 또한 코드에서 문제를 해결하려고했습니다.
  • viewDidLoad에서 edgeForExtendedLayout을 none으로 설정하십시오. 아무것도 변경되지 않았습니다.
  • 첫 번째 섹션의 헤더 만 1로 설정하십시오.
  • self.navigationController? .navigationBar.isTranslucent = 변경 사항 없음

반 정확 :한 솔루션이 코드에서 contenInset을 수동으로 변경했습니다. 내 코드에 16 점을 세게 입력해야하기 때문에 이것을 좋아하지 않습니다. 32의 헤더가 어디에서 왔는지 모르겠습니다. 그래서 나는 16 포인트가 영원히 머무를 지 모른다. 미래에도 안전한 솔루션을 원합니다. 이것이 어려운 해결책이었습니다.

self.tableView.contentInset = UIEdgeInsetsMake(-16, 0, 0, 0)


  • 답변 # 1

    이 최상위 공간은 그룹화 된 스타일 tableView 헤더에서 비롯됩니다. 표 상단에 표 헤더보기를 추가하고 색상을 "그룹 표보기 배경색"으로 설정 한 다음 높이를 원하는 크기로 설정할 수 있습니다 (16).

  • 답변 # 2

    iOS11 순수 코드 솔루션

    순수한 코드로 이것을하고 35px 빈 공간을 제거하려는 사람은 tableHeaderView 를 추가해야합니다.  그들의 tableView 에  - nil 로 표시됩니다  기본 크기를 35px로 설정

    즉,

    tableView.tableHeaderView = tableHeaderView
    var tableHeaderView:UIView = {
        let view = UIView()
        view.frame = CGRect(x: 0, y: 0, width: tableView.bounds.width, height: CGFloat.leastNormalMagnitude)
        return view
    }()
    
    

    참고기기 너비는 경계/뷰 너비이며 높이는아닙니다 0  -하지만 CGFloat.leastNormalMagnitude

  • 이전 vue.js - vuex 및 laravel 5 - 기사에서 태그를 제거하는 방법
  • 다음 asp.net mvc - txt 파일에서 인증 속성 체계를 설정하는 방법은 무엇입니까?