如何更改UIBarButtonItem的标题?我有以下代码,在我的UINavigationBar上按下"编辑"按钮时调用该代码.
-(void)editButtonSelected:(id)sender {
NSLog(@"edit button selected!");
if(editing) {
NSLog(@"notediting");
[super setEditing:NO animated:NO];
[tableView setEditing:NO animated:NO];
[tableView reloadData];
[rightButtonItem setTitle:@"Edit"];
[rightButtonItem setStyle:UIBarButtonItemStylePlain];
editing = false;
}
else {
NSLog(@"editing");
[super setEditing:YES animated:YES];
[tableView setEditing:YES animated:YES];
[tableView reloadData];
[rightButtonItem setTitle:@"Done"];
[rightButtonItem setStyle:UIBarButtonItemStyleDone];
editing = true;
}
}
Run Code Online (Sandbox Code Playgroud)
"编辑"按钮正在改变颜色(因此设置样式的行正在工作),但是设置按钮标题的行不起作用.
我已经启用了自动布局在iOS视图,并有UIToolbar一个UISearchBar与UISegmentControl载带的工具栏.我想要UISearchBar有一个灵活的宽度,所以我需要添加一个约束来强制这个,但从我可以告诉你不能添加约束到UIToolbar接口生成器中的项目.所有选项均已禁用.
在AutoLayout我完成这个之前autoresizingmasks.
是否允许约束UIToolbars/UINavigationBars?
使用autolayout时如何才能实现这一目标?
我想在iOS通用应用程序中放置两个UIBarButtonItem实例UIToolbar,第一个项目位于工具栏的左边缘,第二个项目位于中心.但是,看起来这不能在Interface Builder中完成,因为自动布局不支持强制UIBarButtonItem类的约束,因为它不是来自的子类UIView.
请注意,我不想将第一个放在左边缘而第二个放在右边缘 - 我必须将第二个按钮放在中心位置.此外,我没有计划使用第三个按钮,以相等的间隔将它们对齐为左,中,右.
在故事板中是否仍然可以在这种情况下添加这种约束?我使用Xcode 6 beta 5.
UIBarButtonItems的水平定位没问题,我可以简单地用固定/灵活的空间物品填充空间.但是,我似乎无法垂直调整工具栏项.UIToolbar没有对齐属性,UIBarButtonItem无法设置其框架.
我需要这样做是因为我们使用了使用initWithImage创建的自定义图标和使用initWithBarButtonSystemItem创建的标准图标.自定义图标没有正确居中(它们向上偏移,相对于系统图标,它们正确居中),因此工具栏看起来很笨拙.
我正试图rightBarButtonItem在UINavigationViewController堆栈的第二个视图控制器上放置一个.
我正在创建并设置viewDidLoad我想要显示的视图控制器中的按钮.我的实际代码如下所示:
override func viewDidLoad() {
super.viewDidLoad()
menu_button_ = UIBarButtonItem(image: UIImage(named: "menu"),
style: UIBarButtonItemStyle.Plain ,
target: self, action: "OnMenuClicked:")
self.navigationController!.navigationItem.rightBarButtonItem = menu_button_
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?该按钮不会出现.
无论我尝试初始化UIBarButtonItem的任何图像,它只是显示图像大小的白色背景.即使我在界面构建器中累了,结果也是一样的.所有这些图像与其他对象一起使用时效果很好.
我怎么解决这个?
我有一个带左右按钮的导航栏,我需要在右键旁边放另一个按钮.有谁知道我怎么能这样做?以下是一些有用的代码:
- (id)init {
self = [super initWithStyle:UITableViewStyleGrouped];
if (self) {
_pinArray = [[NSArray alloc]init];
_pinArray = [Data singleton].annotations;
UIBarButtonItem *right = [[UIBarButtonItem alloc]initWithTitle:@"Map"
style:UIBarButtonItemStylePlain
target:self
action:@selector(goToMap:)];
self.navigationItem.rightBarButtonItem = right;
UIBarButtonItem *left = [[UIBarButtonItem alloc]initWithTitle:@"Menu"
style:UIBarButtonItemStylePlain
target:self
action:@selector(goToMenu:)];
self.navigationItem.leftBarButtonItem = left;
self.navigationItem.title = @"My Homes";
}
return self;
}
Run Code Online (Sandbox Code Playgroud) 我得到以下代码:
- (id)init {
if (self = [super init]) {
self.title = @"please wait";
UIBarButtonItem *favorite = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"star.png"] style:UIBarButtonItemStylePlain target:self action:@selector(buttonFavoriteClicked:)];
self.navigationItem.rightBarButtonItem = favorite;
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
但我的按钮看起来仍像一个带有UIBarButtonItemStyleBordered替换文字的按钮 http://img693.imageshack.us/img693/1632/bildschirmfoto20100227ui.png
有没有办法在这个位置设置一个朴素的按钮?
我想在swift的左侧显示一个图像.
我尝试添加导航栏按钮项并在那里设置图像.
问题是我必须使用一个非常小的图像才能很好地适应导航栏.但制作如此小的图像会导致像素化,特别是在较大的手机iPhone 6和6 Plus上.
有没有办法使用高质量的图像然后设置框架以适应导航栏的范围?
我的尝试:
var image = UIImage(named: "Harp.png")
image = image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
self.navigationItem.leftBarButtonItem.frame = CGRectMake(0, 0, 53, 31)
//image.frame = CGRectMake(0, 0, 53, 31)
Run Code Online (Sandbox Code Playgroud)
我尝试先将帧放在图像上,然后放在条形按钮项上.但这是一个错误:
如果没有更多的上下文,表达的类型是不明确的.
uibarbuttonitem ×10
ios ×6
iphone ×4
swift ×3
uitoolbar ×3
autolayout ×2
objective-c ×2
cocoa-touch ×1
image ×1
xcode ×1