[ios] UIToolBar 항목 정렬

UIBarButtonItem다음과 같이 세 가지를 만들었습니다. 그들은 왼쪽으로 정렬되고 오른쪽에 간격이 없도록 가운데 정렬하고 싶습니다. 에서 정렬 속성이 표시되지 않습니다 UIToolBar. 이를 수행하는 다른 방법이 있습니까?

//create some buttons
UIBarButtonItem *aboutButton = [[UIBarButtonItem alloc] initWithTitle:@"About" style:UIBarButtonItemStyleBordered target:self action:@selector(showAbout:)];
[toolbar setItems:[NSArray arrayWithObjects:settingsButton,deleteButton,aboutButton,nil]];
//Add the toolbar as a subview to the navigation controller.
[self.navigationController.view addSubview:toolbar];



답변

도구 모음의 항목 왼쪽과 오른쪽에 두 개의 UIBarButtonSystemItemFlexibleSpace 항목을 추가합니다.

UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[toolbar setItems:[NSArray arrayWithObjects:flexibleSpace, settingsButton,deleteButton,aboutButton, flexibleSpace, nil]];

다른 도구 모음 항목과 마찬가지로 이러한 항목을 추가하면 둘 사이에 공간이 균등하게 분산됩니다.


답변

이 작업은 스토리 보드에서 바로 수행 할 수도 있습니다.

툴바에서 항목을 드래그 앤 드롭하고 일부를 유연하거나 고정 된 공간으로 전환하여 원하는 효과를 얻으십시오. 아래의 두 가지 예를 참조하십시오.

균일 한 간격

중심


답변

Xamarin iOS에서

오른쪽 정렬 :

yourBar.SetItems(new [] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), yourButton }, false);

중앙 정렬 :

var flexibleSpace = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);
yourBar.SetItems(new [] { flexibleSpace, yourButton, flexibleSpace}, false);


답변

Swift 버전 :

    let toolbar = UIToolbar(frame: CGRectMake(0, 0, viewController.view.frame.size.width, 35.0))
    let flexibleSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: viewController, action: nil)
    let button1 = UIBarButtonItem(title: "A", style: UIBarButtonItemStyle.Plain, target: viewController, action: foo)
    let button2 = UIBarButtonItem(title: "B", style: UIBarButtonItemStyle.Plain, target: viewController, action: bar)
    let button3 = UIBarButtonItem(title: "C", style: UIBarButtonItemStyle.Plain, target: viewController, action: blah)
    toolbar.items = [button1, flexibleSpace, button2, flexibleSpace, button3]


답변