当前位置:  开发笔记 > 编程语言 > 正文

对齐UIToolBar项目

如何解决《对齐UIToolBar项目》经验,为你挑选了4个好方法。

我有三个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];

nduplessis.. 258

将两个UIBarButtonSystemItemFlexibleSpace项添加到工具栏中,项目的左侧和右侧

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

像任何其他工具栏项一样添加这些项将在两者之间均匀分配空间.



1> nduplessis..:

将两个UIBarButtonSystemItemFlexibleSpace项添加到工具栏中,项目的左侧和右侧

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

像任何其他工具栏项一样添加这些项将在两者之间均匀分配空间.


制作多个灵活空间没有真正的理由.如果需要多个灵活空间对象,可以多次将相同的多个灵活空间对象添加到工具栏中.
您忘记更新发布调用,应阅读[flexibleSpace发布];

2> Nycen..:

这也可以直接从故事板中完成.

只需拖放工具栏中的项目,然后将其中的一些项目转换为灵活或固定的空间即可获得所需的效果.请参阅以下两个示例.

均匀分布的

中心



3> Herman Schoe..:

在Xamarin iOS中

右对齐:

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

中心对齐:

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


虽然可能很清楚问题中的代码是Objective-C,但我发现这个答案很有帮助.这也是谷歌的一个高排名问题.
@MaxMacLeod:它没有被标记为obj-c,它被标记为iPhone.因此我的回答是有效的.对比c#vs obj-c也很好.很明显,c#在各方面都更现代,更苗条,更好,更快,更优越.
这不是主题.我们在这里谈论纯iOS.
这是MonoTouch的目标.
Objective C问题不是MonoTouch/C#

4> rgamber..:

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]

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有