iOS 11 헤드 이미지 드롭다운 확대 문제
lazy var topView:HRDDPersonTopContentView = {
guard let view = Bundle.main.loadNibNamed("HRDDPersonTopContentView", owner: self, options: nil)?.first as? HRDDPersonTopContentView else {
return HRDDPersonTopContentView()
}
view.frame = CGRect(x: 0, y: 0, width: WIDTH, height:173*GlobalScare)
return view
}()
2,viewdidload에tableview의contentInset을 설정
self.edgesForExtendedLayout = UIRectEdge()
extendedLayoutIncludesOpaqueBars = true
if #available(iOS 11.0, *){
tableView.contentInsetAdjustmentBehavior = .never
}else{
automaticallyAdjustsScrollViewInsets = false
}
self.tableView.contentInset = UIEdgeInsetsMake(173*GlobalScare, 0, 0, 0)
self.view.addSubview(self.topView)
topView.delegate = self
self.tableView.registerNibWithCell(HRDDPersonArrowTableCell.self)
3、viewWill Layout Subviews에서 콘텐츠 Inset과 위쪽view의 프레임을 다시 설정합니다
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
self.tableView.contentInset = UIEdgeInsetsMake(173*GlobalScare, 0, 0, 0)
self.topView.frame = CGRect(x: 0, y: 0, width: WIDTH, height:173*GlobalScare)
}
4. 스크롤 작업
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print(scrollView.frame)
print(scrollView.contentInset)
let pointy = scrollView.contentOffset.y
if pointy < -173*GlobalScare {
var rect = self.topView.frame //self.tableView.viewWithTag(102)!.frame
rect.size.height = -pointy
self.topView.frame = rect
}
}
OK, 이렇게 하면 완성됩니다. 여기서 가장 큰 문제는 iOS 11.0의 설정 문제입니다.
extendedLayoutIncludesOpaqueBars = true
if #available(iOS 11.0, *){
tableView.contentInsetAdjustmentBehavior = .never
}else{
automaticallyAdjustsScrollViewInsets = false
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.