我创造了一个 UIActionSheet
UIActionSheet * action = [[UIActionSheet alloc]initWithTitle:@""
delegate:self
cancelButtonTitle: @"cancel"
destructiveButtonTitle: @"OK"
otherButtonTitles: nil];
[action showInView:self.view];
[action release];
Run Code Online (Sandbox Code Playgroud)
在取消按钮的事件中,UIActionSheet我想要触发一个事件UIBarButtonItem,这在我看来.
我的问题是如何在UIActionSheet委托方法中触发按钮事件(不触摸按钮)
所以我遇到了许多其他人在使用UIButton作为自定义视图创建UIBarButtonItem时遇到的相同问题.
基本上,按钮向左或向右约10像素到远.当我使用没有自定义视图的常规BarButtonItem时,这不会发生.
这篇文章提供了部分解决方案: UIBarButton With Custom View
这是我通过子类化UIButton创建的代码(如另一篇文章中所述)
- (UIEdgeInsets)alignmentRectInsets {
UIEdgeInsets insets;
if ([self isLeftButton]) {
insets = UIEdgeInsetsMake(0, 9.0f, 0, 0);
}
else { // IF ITS A RIGHT BUTTON
insets = UIEdgeInsetsMake(0, 0, 0, 9.0f);
}
return insets;
}
- (BOOL)isLeftButton {
return self.frame.origin.x < (self.superview.frame.size.width / 2);
}
Run Code Online (Sandbox Code Playgroud)
这很好用,但当我从导航控制器弹出一个视图控制器回到这个主视图时,按钮仍然错误地定位了大约.3秒,然后它捕捉到正确的插图.
这是一个巨大的眼睛,我不知道如何阻止它像这样攫取.有什么想法吗?谢谢!
我正在尝试向所有键盘添加自定义UIToolBar,重复次数很少.我目前正在这样做的方式要求我将代码添加到我的所有viewDidLoads并将每个textfield的委托分配给我正在使用的viewController.我已经尝试创建自己的UIToolBar子类,但是当我的"完成"和"取消"按钮的目标是自我视图时,我发现我无法真正做到这一点.有没有人有任何关于创建一个易于重复使用的工具栏的建议?提前致谢.
override func viewDidLoad() {
super.viewDidLoad()
var toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.Default
toolBar.translucent = true
toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Done, target: self, action: "donePressed")
var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelPressed")
var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.userInteractionEnabled = true
toolBar.sizeToFit()
stateField.inputAccessoryView = toolBar
stateField.delegate = self
Run Code Online (Sandbox Code Playgroud) 我使用以下代码将UITabButtonItem添加到我的视图控制器上.任何人都可以告诉我它是否可以将图像与它联系起来?
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(favouriteButtonClicked:)];
viewController2.navigationItem.rightBarButtonItem = button;
[button release];
[self.navigationController pushViewController:viewController2 animated:YES];
Run Code Online (Sandbox Code Playgroud)
我在其他地方使用以下代码,但在上面的代码我将viewcontroller推到我当前的视图,这段代码不起作用.我不得不使用上面的代码.
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(favouriteButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(280, 25, 30, 30)];
viewController2.navigationController.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];
[self.navigationController pushViewController:viewController2 animated:YES];
Run Code Online (Sandbox Code Playgroud)
我不知道有什么问题但是当我用initWithBarButtonSystemItem替换这个自定义按钮代码时,它工作得很好!!!
最后,我整理出这个问题,并张贴在这里工作的代码,但仍,如果我有在baseviewcontroller一个按钮,我不明白,我添加它,就象下面,这是行不通的!我必须在viewwillappear中使用我接受的答案中给出的代码!
[favButton addTarget:self action:@selector(favouriteButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];
Run Code Online (Sandbox Code Playgroud)
以下代码仍然无法正常工作!不知道发生了什么.
MPMoviePlayerViewController *videoController = [[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:filePath]] autorelease];
UIButton* favouritebutton = [UIButton buttonWithType:UIButtonTypeCustom];
[favouritebutton setBackgroundImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal];
[favouritebutton addTarget:self action:@selector(favouriteButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
[favouritebutton …Run Code Online (Sandbox Code Playgroud) 在点击'record'BarButtonItem之后,我想以编程方式突出显示它,直到录制结束.iOS的突出显示图形非常好,因此我想保留或设置该状态.
到目前为止,我发现'setSelected'和'setHighlighted',但这些不适用于UIBarButtonItem.关于如何解决这个问题的任何建议?科恩,提前谢谢你.
我正在UIBarButtonItem使用我的对象设置自定义字体UIAppearance.这很好,并正确设置字体.但是,我需要调整按钮标题的垂直位置以适应新字体的大小.
[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIFont fontWithName:@"Sketch Rockwell" size:12] forKey:UITextAttributeFont] forState:UIControlStateNormal];
[[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0, 1.5) forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
问题是标题的垂直位置在常规中正确调整UIBarButtonItem,但导航栏上的后退按钮无法调整.我假设我的目标是我的代码中的正确对象,因为它的字体更新,而不是它的标题的垂直位置.
有没有人知道如何直接定位后退按钮?
谢谢
布赖恩
我想将UINavigationBar中的后退按钮设置为此图像:

我不希望图像嵌入标准后退按钮图像,我只想要显示此图像.
通过查看我可以使用的其他问题,我知道:
Run Code Online (Sandbox Code Playgroud)[[UIBarButtonItem appearance] setBackButtonBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
设置后退按钮的背景图像.但这导致图像被拉伸,据我所知,这个特定的图像不适合被拉伸.
有没有办法可以用我的图像替换后退按钮图像?
我支持iOS 5.0及更高版本.
我怎么能在swift中得到rightbarbuttonItem的框架?我发现了这个:UIBarButtonItem:我怎样才能找到它的框架?但它说无法将NSString转换为UIView,或者无法将NSString转换为String:
let str : NSString = "view" //or type String
let theView : UIView = self.navigationItem.rightBarButtonItem!.valueForKey("view")//or 'str'
Run Code Online (Sandbox Code Playgroud)
目标是删除rightBarButtonItem,改为添加imageView,并使用fadeOut效果移动它.
谢谢
我在互联网上看到了很多这样的问题,但似乎没有人真正知道答案?
我正在使用QLPreviewController来显示PDF文档.我首先使用了UIWebView,但我建议使用QLPreviewController来代替性能较大的文档.
我想要的是右上角的4个自定义UIBarButtonItem(所以打印按钮在哪里).
我设法在底部找到一个自定义工具栏,但这不是我想要的.
考虑到无法在打印按钮的位置添加自定义按钮,我仍然想要删除打印按钮并使用自定义工具栏.
编辑(解决方案): 我刚刚找到解决方案,但没有更新这篇文章,所以这里是我解决问题的方法:
我手动添加按钮:
// Create a toolbar to have the buttons at the right side of the navigationBar
UIToolbar* toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 180, 44.01)];
[toolbar setTranslucent:YES];
// Create the array to hold the buttons, which then gets added to the toolbar
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:4];
// Create button 1
button1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(button1Pressed)];
[buttons addObject:button1];
// Create button 2
button2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:self action:@selector(button2Pressed)];
[buttons …Run Code Online (Sandbox Code Playgroud) 我正试图在AppIcon上显示的应用程序中显示我的通知按钮上的徽章.
到目前为止,无论我研究过什么都与Obj有关.C,但没有具体讨论如何在Swift中实现该解决方案,
请帮助找到添加自定义类/代码的解决方案,以在UiBarbutton和UiButton上实现Badge.
到目前为止研究:
https://github.com/Marxon13/M13BadgeView
以及MKBadge类等.
uibarbuttonitem ×10
ios ×6
iphone ×3
swift ×3
uibutton ×2
back-button ×1
badge ×1
cocoa ×1
events ×1
image ×1
ios7 ×1
ipad ×1
objective-c ×1
repeat ×1
uiappearance ×1
uitoolbar ×1