2017-09-20 2 views
2

사용자 지정 탐색 항목 제목은 .xib 파일에서로드 된 두 개의 레이블, 다른 하나의 레이블입니다.사용자 지정 탐색 제목 오프셋 ios 11

enter image description here

그것은이를 호출하여 장전 :

class Utilities { 
    /// Title and subtitle format custom title in Navigation bar. Top and bottom text are centered on one another. 
    /// 
    /// - Parameters: 
    /// - navigationItem: The receiving controller's navigation item. 
    /// - titleText: Top text to be displayed a little larger and more bold. 
    /// - subtitleText: Bottom text to be displayed a little smaller and less bold. 
    class func addCustomNavigationTitle(navigationItem: UINavigationItem, titleText: String, subtitleText: String) { 
     let customNavigationTitleView = LabelSubLabelCustomHeaderView.instanceFromNib() as! LabelSubLabelCustomHeaderView 
     customNavigationTitleView.titleLabel.text = titleText 
     customNavigationTitleView.dateLabel.text = subtitleText 
     navigationItem.titleView = customNavigationTitleView 
    } 
    ... 
} 

그것은이로 정의되어 :

class LabelSubLabelCustomHeaderView: UIView { 
    @IBOutlet var titleLabel: UILabel! 
    @IBOutlet var dateLabel: UILabel! 

    class func instanceFromNib() -> UIView { 
     return UINib(nibName: "LabelSubLabelCustomHeaderView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView 
    } 
} 

을 지금, 그것은이 바닥 라벨을 숨 깁니다 정확히 22 픽셀에 의해 아래로 밀어입니다.

viewDidAppear에서이 뷰의 프레임을 설정하여 직선으로 설정해야합니다. 나는 viewWillAppear 및 다른 여러 가지 시도했다. 나는 그것을 문자 그대로 숨기고, 설정하고, 보여 주어야한다. 그것은 옳지 않다.

iOS 11 이전에는 문제가 없었습니다.

은 여기 내가 잘 할 수 있기를 바랍니다 내 해킹 수정없이, 지금 :

enter image description here

를 그리고 여기 그것이 아이폰 OS 10 전에 어떻게 생겼는지, 어떻게 보일지이며, 내 해킹 수정으로 보는 방법 :

enter image description here

또한 너무 낮은 22 픽셀 인, 언 와인드 SEGUE 애니메이션이 때, 뷰가 잘못된 프레임으로 이동합니다 점에 유의하시기 바랍니다. 어떻게 해결할 수 있습니까? 사전에 도움을 주셔서 감사합니다.

편집 : 더 자세한 제약 정보 :

View DateLabel

TitleLabel

+0

을 참조하십시오. 오류/솔루션이 레이아웃 제약에 있다고 생각합니다. 지금까지 정의한 것을 보여줄 수있는 기회가 있습니까? – ekscrypto

+0

감사합니다. 이것이 내가 제약 조건을 보여주는 스크린 샷을 작성한 이유이지만 더 자세한 스크린 샷을 보여줄 수는 있습니다 ... 원본 게시물을 편집 할 것입니다 ... –

+0

좋아, 더 많은 스크린 샷을 넣었습니다. 이것은 .xib에서로드되고 탐색 항목 사용자 정의 제목보기로 설정됩니다. 로드 된 뷰에 제약 조건을 설정하는 방법 또는 가능한 경우이를 알지 못합니다. 나는 네비게이션 아이템이 나를 위해 그렇게한다고 생각할 것이다. 여하튼, iOS 11 이전의 현재 제약 조건으로도 문제가 없었습니다. –

답변

1

당신은 안전에 하위 레이블 사이의 최소 거리를 적용하여 사용자 정의보기 제목 XIB의 레이아웃 제약 조건을 추가해야합니다 보기 영역. iOS 10/11에 대한 전체 작동 예제는 https://github.com/ekscrypto/Swift-Tutorial-Custom-Title-View

+0

도움말 및 예제 프로젝트를 제공해 주셔서 감사합니다. 매우 감사. 나는 지금 당신이 도와 줄 수있는 예제 프로젝트를 가지고 또 다른 문제를 가지고있다. 새로운 실을 시작하겠습니다. 곧 나타날 링크를 참조하십시오. –

+0

프로젝트를 체크 아웃하려고 했으므로 변경 사항을 적용 할 수는 있지만 간단합니다. 새 뷰 컨트롤러를 푸시하는 버튼을 추가했습니다. –

+0

https://stackoverflow.com/questions/46415168/custom-title-view-not-centered –

관련 문제