2015-02-05 4 views
2

Я хочу разместить два UIBarButtonItems в правой части панели навигации. Основная проблема, с которой я сталкиваюсь, - это расстояние между кнопками (расстояние между правой кнопкой и границей навигации было решено благодаря этому post). Это код, я используюИзменение интервала между двумя правыми UIBarButtonItems

// 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) 

Если я пытаюсь разместить дополнительную распорку между двумя кнопки (как показано here) нет никакого видимого эффекта. Мне нужно немного подогнать кнопки, как я могу это сделать?

ответ

2

Вы фактически не контролируете расстояние между UIBarButtonItems. Вы можете изменить UIBarButtonItem's width, но это все. UIButtonItem не является UIView; у него нет рамки, поэтому вы не можете ничего сказать о его положении. Если вам нужен более тонкий контроль над внешним видом интерфейса, вам придется использовать UIBarButtonItem, который сам состоит из пользовательского представления (init(customView:)). Теперь вы находитесь в мире UIView, и вы можете установить рамки своих подзонов, которые могут быть реальными кнопками или что угодно.

Смежные вопросы