0

코드가있는 콜렉션 뷰 컨트롤러에서 왼쪽 탐색 뒤로 버튼을 추가합니다.
Swift 3을 사용하여 UICollectionView의 UINavigation Back 버튼 추가

//Add Navigation Bar 

    navbar.autoresizingMask = [.flexibleWidth, .flexibleBottomMargin, .flexibleRightMargin] 
    navbar.delegate = self 

    UINavigationBar.appearance().barTintColor = UIColor(red: 0.0/255.0, green:49.0/255.0, blue:79.0/255.0, alpha:0.1) 
    UINavigationBar.appearance().tintColor = UIColor.white 
    UINavigationBar.appearance().isTranslucent = true 
    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white] 

    navItem.title = prefs.value(forKey: "PROVIDER_NAME") as! String? 

    let image = UIImage(named: "back_image") 
    navItem.leftBarButtonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(addTapped)) 

    navItem.leftBarButtonItem?.imageInsets = UIEdgeInsetsMake(0, 0, 0, 0) 


enter image description here
돌아 가기 버튼을 왼쪽으로 너무 가깝습니다. 왼쪽에서 10px 정도 채우기를 추가하고 싶습니다.
그래서, 나는

navItem.leftBarButtonItem?.imageInsets = UIEdgeInsetsMake(0, 15, 0, 0) 

에 코드를 변경하지만 작동하지 않는 이미지로 돌아 가기 버튼이 작아 보인다. 뒤로 버튼 왼쪽에 공백을 추가하려면 어떻게합니까?

+0

는이 뷰 컨트롤러를 포함 마십시오 : A view hierarchy

이것은 당신의 UINavigationBar이 (당신을 위해 배경을 투명하게 할 것이다)처럼 보이게하는 방법입니다 UINavigationController'에 넣으시겠습니까? –

+0

@ArtemStepanenko, UINavigationController 형에 포함되지 않았습니다. –

+0

먼저 navigationController에 viewController를 삽입하고이 게시물을 확인해야합니다. https://stackoverflow.com/questions/43546132/how-to-customize-the-navigation-back -symbol-and-navigation-back-text/43556837 # 43556837 및 https://stackoverflow.com/questions/40504860/how-to-change-back-button-title-on-navigation-controller-in-swift3/40505660 # 40505660 – Joe

답변

2

UINavigationBar을 간단한 UIView으로 바꾸는 것이 좋습니다. 이렇게하면 탐색 막대의 레이아웃을 완벽하게 제어 할 수 있습니다. 뒤로 버튼과 제목 라벨이있는 투명한 UIView 이상의 것이 아닙니다. 저것과 같이 쉬운.

실제 UINavigationBar 이상입니다. 그것은 UINavigationItem 개체의 스택을 관리하기위한 것입니다. 현재 항목에 따라 자체적으로 조정되며 한 상태에서 다른 상태로 애니메이션 (및 대화식) 전환을 수행하는 방법을 알고 있습니다. 그래서 바의 모습을 많이 바꿀 수는 없습니다. 일반보기로 취급해서는 안됩니다.

UPDATE

이를 달성하는 또 다른 방법은 조금 까다 롭습니다. 스토리 보드에서 완벽하게 구현할 수 있으며 모양이 엉망이 될 필요가 없습니다.

  1. 보기 컨트롤러에 UINavigationBar을 추가하십시오.
  2. UINavigationBar의 왼쪽에 일반 UIView을 추가하고 배경색을 완전히 투명하게 만듭니다.
  3. 이전 단계에서 추가 한보기에 UIButton을 추가하고 이미지로 뒤로 아이콘을 설정하십시오.
  4. 버튼에 제약 조건을 추가하여 슈퍼 뷰의 오른쪽에 정렬합니다.
  5. 뒤로 버튼 위치가 원하는 위치에 정확하게 표시되도록보기의 너비를 조정하십시오.

이은 스토리 보드의 뷰 계층 구조입니다 : <code>UINavigationBar</code>