2015-02-05 10 views
2

두 개의 UIBarButtonItem을 내비게이션 막대의 오른쪽에 배치하려고합니다. 내가 직면 한 주된 문제는 버튼 사이의 간격 (가장 오른쪽 버튼과 탐색보기의 경계 사이의 간격이 post 덕분에 해결 되었음)입니다. 이것은 내가 (here를 보여 같은) 명백한 효과가없는 두 개의 버튼 사이에 추가 스페이서를 배치하려고하면 내가두 개의 오른쪽 UIBarButtonItem 사이의 간격 수정

// add buttons 
     let buttonEdit: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton 
     buttonEdit.frame = CGRectMake(0, 0, 40, 40) 
     buttonEdit.setImage(UIImage(named:"iconMap"), forState: UIControlState.Normal) 
     buttonEdit.addTarget(self, action: "rightNavItemEditClick:", forControlEvents: UIControlEvents.TouchUpInside) 
     var rightBarButtonItemEdit: UIBarButtonItem = UIBarButtonItem(customView: buttonEdit) 


     let buttonDelete: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton 
     buttonDelete.frame = CGRectMake(0, 0, 40, 40) 
     buttonDelete.setImage(UIImage(named:"iconMap"), forState: UIControlState.Normal) 
     buttonDelete.addTarget(self, action: "rightNavItemDeleteClick:", forControlEvents: UIControlEvents.TouchUpInside) 

     var rightBarButtonItemDelete: UIBarButtonItem = UIBarButtonItem(customView: buttonDelete) 


     let spaceFix: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil) 
     spaceFix.width = -10 
// add multiple right bar button items 
self.navigationItem.setRightBarButtonItems([spaceFix,rightBarButtonItemDelete,rightBarButtonItemEdit], animated: true) 

을 사용하고 코드입니다. 버튼을 조금 더 가까이 가져 가야합니다. 어떻게해야합니까?

답변

2

UIBarButtonItem 사이의 간격을 실제로 제어하지 못합니다. UIBarButtonItem의 width을 변경할 수 있지만 그게 전부입니다. UIButtonItem은 UIView가 아닙니다. 프레임이 없으므로 위치에 대해 아무 것도 말할 수 없습니다. 인터페이스의 모양을보다 세밀하게 제어하려면 UIBarButtonItem 자체를 사용자 정의보기 (init(customView:))로 구성해야합니다. 이제 UIView 세계에 있으며 서브 뷰 프레임을 설정할 수 있습니다.이 서브 프레임은 실제 버튼이 될 수 있습니다.