我想要得到一个宽度UIBarButtonItem.
这不起作用:
barbuttonitem.customView.frame.size.width
Run Code Online (Sandbox Code Playgroud)
这也行不通:
barbuttonitem.width
Run Code Online (Sandbox Code Playgroud) 我们的设计师让我为禁用的UIBarButtonItems文本使用特定颜色.我用来实现这个代码:
NSDictionary* textAttributes = [NSDictionary dictionaryWithObject: [UIColor blueColor]
forKey: UITextAttributeTextColor];
[[UIBarButtonItem appearance] setTitleTextAttributes: textAttributes
forState: UIControlStateDisabled];
Run Code Online (Sandbox Code Playgroud)
但它没有改变文本属性.
我已尝试使用Normal状态的代码,尝试使用setBackgroundImage为UIControlStateDisabled按钮添加背景,并且所有thouse实验都能正常工作.但是这个单一的组合:setTitleTextAttributes和UIControlStateDisabled没有做任何事情.
谷歌没有给我任何关于这个特定组合的相关答案.
有没有人知道改变禁用的UIBarButtonItem的颜色的其他方法或使setTitleTextAttributes适用于diabled项目的方法?
我正在尝试将UIBarButton项添加到导航栏.
这是我的导航栏类声明:
import UIKit
class NavigationBarController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
configureToolbar()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// #pragma mark - Navigation bar data source
func configureToolbar() {
let toolbarButtonItems = [
searchBarButtonItem
]
toolbar.setItems(toolbarButtonItems, animated: true)
}
var searchBarButtonItem: UIBarButtonItem {
return UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:")
}
}
Run Code Online (Sandbox Code Playgroud)
编译器没有错误,但我得到的只是一个简单的导航栏.
如何显示UIBarButtonItem?
我尝试过这种方法/ hack:http: //blog.blackwhale.at/2009/06/uibuttons-in-uinavigationbar/
问题是这留下了一个微弱的缝隙.我尝试将嵌套工具栏的背景图像设置为我捕获的应该是什么的图像.那没用.图像未应用.我也尝试使用嵌套的UINavigationBar,但似乎没有用.
我在几个iPhone应用程序中看到过这个.有谁知道怎么样?
[编辑]我希望按钮看起来像普通的UIBarButtonItems,并且能够使用系统样式,如UIBarButtonSystemItemAdd,UIBarButtonSystemItemRefresh.我提供的链接执行此操作,除了您可以看到一个微弱的接缝,因为它是嵌套在导航栏中的UIToolbar.
请不要提及违反人机界面指南.(我们知道).
我感谢你贡献你的黑客......这是唯一的方法!
我知道如何自定义UIBarButtonItem使用-setBackgroundImage: forState: barMetrics:,但我想使用不同的图像UIBarButtonItemStyleDone和UIBarButtonItemStylePlain.
有没有办法使用UIAppearance协议来实现这一目标?或者每次我想要一个"完成"样式按钮时我是否必须设置图像?
(我试着搞乱如下代码:
[[UIBarButtonItem appearance] setBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarButtonItemStyleDone];
但这只是用"完成"图像设置每个条形按钮.)
谢谢!
我正在制作UIBarButtons如下:
// Create "back" UIBarButtonItem
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0, 0, 28, 17);
[backButton addTarget:self action:@selector(backButtonTapped) forControlEvents:UIControlEventTouchUpInside];
backButton.showsTouchWhenHighlighted = YES;
UIImage *backButtonImage = [UIImage imageNamed:@"back-button.png"];
[backButton setBackgroundImage:backButtonImage forState:UIControlStateNormal];
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
[toolBarItems addObject:backBarButtonItem];
Run Code Online (Sandbox Code Playgroud)
但是,水龙头目标很小.更确切地说,它们是自定义图像的大小.(再次,这很小.)有没有办法增加他们的水龙头目标的大小?
(注意:更改UIButtons的框架属性只会拉伸图像.)
我在我的iPad应用程序中显示一个弹出控制器:
[self.programMapPopOver presentPopoverFromRect:anchor.frame
inView:anchor.superview
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
Run Code Online (Sandbox Code Playgroud)
我的问题是锚:我想设置一个UIBarButtonItem*作为它的锚点,但它不是UIView*,但是inView是一个view*参数.
我怎么解决这个问题?
谢谢大家!
我在导航栏中有一个条形按钮项,按下时将显示一个UIAlertController样式为.ActionSheet.在iPhone中,它看起来就像我想要的那样.对于iPad,我知道我需要添加
// For iPad, set the pop over bounds
var popOver = optionMenu.popoverPresentationController
popOver?.sourceView = button as UIView
popOver?.sourceRect = (button as UIView).bounds
popOver?.permittedArrowDirections = UIPopoverArrowDirection.Any
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何使用条形按钮项目作为sourceView和sourceRect?我希望popover指向bar按钮项.
我正在尝试创建UIBarButtonItem这样的:
UIBarButtonItem *discardButton =
[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"edit-document.button.discard", "Discard Changes button")
style:UIBarButtonItemStyleBordered
target:self
action:@selector(discardButtonAction:)];
Run Code Online (Sandbox Code Playgroud)
但是,我注意到UIBarButtonItemStyleBordered现在已经弃用了.相反,我该怎么办?
我正在以编程方式创建一个带有 UIBarButtonItem 的 UIToolbar。我没有为此 ViewController 使用 .xib 或故事板。这是我如何创建它的代码。
NSMutableArray *items = [[NSMutableArray alloc] init];
UIBarButtonItem *buttonItem;
buttonItem = [[UIBarButtonItem alloc ] initWithTitle: [Language get:@"Home" alter:nil]
style: UIBarButtonItemStyleBordered
target: self
action: @selector(viewChangeTo)];
[items addObject:buttonItem];
toolbar = [[UIToolbar alloc] init];
toolbar.frame = CGRectMake(0, 0, 1024, 44);
[toolbar setItems:items animated:NO];
[self.view addSubview:toolbar];
Run Code Online (Sandbox Code Playgroud)
每次加载视图时,我都会收到 LayoutConstraints 错误。
[LayoutConstraints] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each …Run Code Online (Sandbox Code Playgroud) objective-c uitoolbar uibarbuttonitem ios nslayoutconstraint
uibarbuttonitem ×10
ios ×6
iphone ×3
objective-c ×3
swift ×2
uitoolbar ×2
appearance ×1
deprecated ×1
ios5 ×1
ios8 ×1
ipad ×1
popover ×1
uiappearance ×1
uibutton ×1
uipopover ×1