标签: uibarbuttonitem

UIBarButtonItem具有自定义图像,没有边框

我想用自定义图像创建一个UIBarButtonItem,但我不想要iPhone添加的边框,因为我的图像有一个特殊的边框.

它与后退按钮相同,但是前进按钮.

这个应用程序是针对inHouse项目的,所以我不在乎Apple是拒绝或批准它还是喜欢它:-)

如果我使用UIBarButtonItem的initWithCustomView:v属性,我可以这样做:

UIImage *image = [UIImage imageNamed:@"right.png"];

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage: [image stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal];
[button setBackgroundImage: [[UIImage imageNamed: @"right_clicked.png"] stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateHighlighted];

 button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);

[button addTarget:self action:@selector(AcceptData)    forControlEvents:UIControlEventTouchUpInside];

UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];

[v addSubview:button];

UIBarButtonItem *forward = [[UIBarButtonItem alloc] initWithCustomView:v];

self.navigationItem.rightBarButtonItem= forward;

[v release];
[image release];
Run Code Online (Sandbox Code Playgroud)

这有效,但如果我必须在10个视图中重复此过程,这不是DRY.

我想我必须继承,但是什么?

  • NSView?
  • UIBarButtonItem?

谢谢,

问候,

iphone uibarbuttonitem ios

88
推荐指数
5
解决办法
7万
查看次数

以编程方式将导航栏添加到导航栏

嗨,我需要在导航栏中以编程方式设置右侧的按钮,这样如果我按下按钮,我将执行一些操作.我以编程方式创建了导航栏;

navBar=[[UINavigationBar alloc]initWithFrame:CGRectMake(0,0,320,44) ];
Run Code Online (Sandbox Code Playgroud)

同样,我需要在此导航栏的右侧添加按钮.为此我用过,

1.  

    UIView* container = [[UIView alloc] init];

    // create a button and add it to the container
    UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 130, 44.01)];
    [container addSubview:button];
    [button release];

    // add another button
    button = [[UIButton alloc] initWithFrame:CGRectMake(160, 0, 50, 44.01)];
    [container addSubview:button];
    [button release];

    // now create a Bar button item
    UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithCustomView:container];

    // set the nav bar's right button item
    self.navigationItem.rightBarButtonItem = item;
    [item release];
Run Code Online (Sandbox Code Playgroud)

2.   …

iphone objective-c uinavigationbar uibarbuttonitem

87
推荐指数
6
解决办法
15万
查看次数

"自定义样式不支持导航项目"警告与我的自定义栏按钮项

我将Round Rect按钮拖动到右侧Bar Button项的位置,并将图像设置为Round Rect Button.除警告"导航项目中不支持普通样式"外,一切正常.即使我选择条形按钮项的样式为"有边框",警告仍然存在.Xcode 4.2有什么问题?提前致谢!

PS.我使用圆形矩形按钮定制了许多条形按钮项目,有时Xcode 4.2仅显示条形按钮项目上的一个警告,有时显示所有条形按钮项目的警告.

iphone xcode uibarbuttonitem uibarbuttonitemstyle ios

83
推荐指数
5
解决办法
4万
查看次数

如何在UINavigationBar中编辑左,右UIBarButtonItem的空格[iOS 7]

我之前使用的是iOS 6.1,但现在我已经转移到iOS 7.除了其他问题之外,我观察到在我的导航栏中,左侧栏按钮项的左侧空间和右侧按钮栏项的右侧空白区域相当IOS 7比iOS 6更多.

我需要知道有没有办法可以减少导航栏中左,右栏按钮项的空格?

提前致谢.

iphone uinavigationbar uibarbuttonitem ios ios7

81
推荐指数
8
解决办法
5万
查看次数

在iOS 7中更改后退按钮会禁用滑动以返回导航

我有一个iOS 7应用程序,我在这里设置一个自定义后退按钮,如下所示:

    UIImage *backButtonImage = [UIImage imageNamed:@"back-button"];
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];

    [backButton setImage:backButtonImage forState:UIControlStateNormal];
    backButton.frame = CGRectMake(0, 0, 20, 20);

    [backButton addTarget:self
                   action:@selector(popViewController)
         forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    viewController.navigationItem.leftBarButtonItem = backBarButtonItem;
Run Code Online (Sandbox Code Playgroud)

但是这会禁用iOS 7"从左向右滑动"手势以导航到之前的控制器.有谁知道如何设置自定义按钮并仍然启用此手势?

编辑:我试图设置viewController.navigationItem.backBarButtonItem,但这似乎并没有显示我的自定义图像.

uinavigationcontroller uibarbuttonitem uiviewanimation ios ios7

79
推荐指数
7
解决办法
5万
查看次数

如何在Swift中设置UIBarButtonItem的操作

如何设置Swift中自定义UIBarButtonItem的操作?

以下代码成功将按钮放在导航栏中:

var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:nil)
self.navigationItem.rightBarButtonItem = b
Run Code Online (Sandbox Code Playgroud)

现在,我想func sayHello() { println("Hello") }在触摸按钮时打电话.到目前为止我的努力:

var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:sayHello:)
// also with `sayHello` `sayHello()`, and `sayHello():`
Run Code Online (Sandbox Code Playgroud)

和..

var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:@selector(sayHello:))
// also with `sayHello` `sayHello()`, and `sayHello():`
Run Code Online (Sandbox Code Playgroud)

和..

var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:@selector(self.sayHello:))
// also with `self.sayHello` `self.sayHello()`, and `self.sayHello():`
Run Code Online (Sandbox Code Playgroud)

请注意,它sayHello()出现在intellisense中,但不起作用.

谢谢你的帮助.

编辑:对于后代,以下工作: …

action uibarbuttonitem ios swift

78
推荐指数
3
解决办法
10万
查看次数

UIBarButtonItem在用作左侧或右侧导航栏项目时,自定义视图未在iOS 7上正确对齐

以下代码通过iOS 6运行:

UIButton *myButton = nil;
myButton = [UIButton buttonWithType:UIButtonTypeCustom];
myButton.bounds = CGRectMake(0,0,44,30);
// setup myButton's images, etc.

UIBarButtonItem *item = nil;
item = [[UIBarButtonItem alloc] initWithCustomView:customButton];
Run Code Online (Sandbox Code Playgroud)

这是按钮应该如何对齐:

正常定位

但是,在iOS 7上,按钮似乎从右侧或左侧偏移了太多像素:

iOS 7上的定位不正确

如何才能使我的自定义条形按钮项目正确对齐?

uinavigationbar uibutton uibarbuttonitem uinavigationitem ios7

75
推荐指数
4
解决办法
6万
查看次数

如何解雇故事板Popover

UIBarButtonItem使用Xcode Storyboards 创建了一个popover (所以没有代码),如下所示:

带有Popover的Xcode 5.0 Connections Inspector

提出popover工作得很好.但是,当我点击它使它出现时,我无法让popover 消失UIBarButtonItem.

按下按钮(第一次)时会出现弹出窗口.当再次按下该按钮(第二次)时,它上面会出现相同的弹出窗口,所以现在我有两个弹出窗口(如果我继续按下按钮,则会有更多弹出窗口).根据iOS人机界面指南,我需要在第一次点击时显示弹出窗口并在第二次点击时消失:

确保一次只能在屏幕上看到一个弹出窗口.您不应同时显示多个弹出窗口(或设计为外观和行为的自定义视图).特别是,您应该避免同时显示级联或层次结构的弹出窗口,其中一个弹出窗口从另一个弹出窗口出现.

当用户UIBarButtonItem再次点击时,如何解除popover ?

objective-c uibarbuttonitem uipopovercontroller ios uistoryboard

73
推荐指数
2
解决办法
5万
查看次数

如何删除所有导航栏后退按钮标题

当我按下它时UIViewController,它在新的后退按钮中有一些标题UIViewController,如果标题有很多文本,它在iPhone 4s看起来不太好所以我想删除它.

如果我在prepareForSegue函数中添加一些代码,那将是一个麻烦.

有没有更好的方法实现这一目标

uibarbuttonitem ios swift

73
推荐指数
12
解决办法
8万
查看次数

在UINavigationBar中更改UIBarButtonItem的位置

如何在UINavigationBar中更改UIBarButtonItem的位置?我希望我的按钮比正常位置高5px.

iphone objective-c uinavigationbar uibarbuttonitem

64
推荐指数
8
解决办法
8万
查看次数