- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的导航栏中有一个 UIBarButton,我从 Storyboard 中为其设置了一个图像 (silhouette.png),并且我可以随意更改该图像的色调(颜色):
if let num2 = Int(s, radix: 16) { //s="00ff00"
flamingoBtn.tintColor = UIColor(netHex:num2) //this btn is an IBoutlet
}
但是,在某些时候,我以编程方式将原始图像更改为另一个图像 (icon.png),因此在这种情况下我不需要更改色调,到目前为止一切顺利:
if let url = NSURL(string: "http://www.123di.com/CanonSGLens_132.png") {
if let data = NSData(contentsOfURL: url) {
var newImgThumb : UIImage=UIImage(data: data)!
var iconBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
iconBtn.setImage(newImgThumb, forState: UIControlState.Normal)
iconBtn.addTarget(self, action: "goToSettings:", forControlEvents: UIControlEvents.TouchUpInside)
var item = UIBarButtonItem(customView: iconBtn)
self.navigationItem.leftBarButtonItem = item
print("CUSTOM ICON: DOWNLOADED")
}
}
问题来了,当我将图标图像切换为原始 silhouette.png 时,因为我无法再修改色调,它始终保持蓝色轮廓(默认颜色),而不是绿色、红色等:
var newImgThumb : UIImage=UIImage(named: "happyface.png")!
var replyBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
replyBtn.setImage(newImgThumb, forState: UIControlState.Normal)
replyBtn.addTarget(self, action: "goToSettings:", forControlEvents: UIControlEvents.TouchUpInside)
replyBtn.tintColor = UIColor.greenColor()
var item = UIBarButtonItem(customView: replyBtn)
item.tintColor = UIColor.greenColor()//UIColor(netHex:num2)
self.navigationItem.leftBarButtonItem = item
我做错了什么,为什么之后会更改色调??如果您需要更多详细信息,请告诉我。
最佳答案
如果你用谷歌搜索如何为你的条形按钮设置自定义图像,几乎每个人都会告诉你创建一个 UIButton
然后从 创建
作为 UIBarButtonItem
UIButtoncustomView:
。在这种情况下,您在这里做的是正确的事情。
但是,如果您通过 cutomView:
创建 UIBarButtonItem
,您将无法再更改 tintColor
。以下是您设置自定义图像以及更改 tintColor
let item = UIBarButtonItem.init(image: UIImage(named: "happyface.png")!,
style: .Plain,
target: self,
action: Selector("goToSettings:"))
item.tintColor = UIColor.greenColor()
self.navigationItem.leftBarButtonItem = item
根据您在哪里调用上面的代码,您可能需要将它放在这个结构中,以使其在 UI 线程中运行并使更改可见:
dispatch_async(dispatch_get_main_queue()) {
//code here
}
关于ios - 无法修改 UIBarButton tintColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36143985/
我正在尝试将 UIBarButtonItems 添加到导航栏,如下所示。效果很好。但最后一个按钮项目显得非常小,并且不会自动设置尺寸。 这是我添加按钮的方法,在 iOS 13 之前它运行良好。 var
嗨 我在导航栏上将 UIBarButton 显示为后退按钮,如何才能获得 UIButton 的默认后退按钮样式。 问候萨姆。 最佳答案 在父 View Controller 中,当在 didselec
您好,我创建了一个栏按钮,当开始编辑 TextView 时,该按钮显示“完成”。实际上我需要什么,当我按下完成按钮时,textview 的可编辑属性将变为 false 并且完成按钮隐藏。 我已经完成了
如何创建一个按下时会改变颜色的自定义 UIBarButton?现在使用普通样式,它只是突出显示,但为了获得更大胆的效果,我希望它改变颜色。我可以使用任何现有的解决方案吗? 最佳答案 我假设您在这里提到
这可能是一个简单的答案,但我是新手……导航栏中的后退按钮很困惑,不想返回主菜单。相反,它会返回到先前的 View 。如何在我的应用程序中指定“后退”按钮应始终转到特定 View ? 最佳答案 您所要做
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
目前,当我使用几个自定义方法来更改按钮图像的位置以将其移动到文本右侧并添加一些填充时,我正在实现一些自定义 UIBarButtonItem。但是,当我离开屏幕并返回时,按钮文本和图像会发生切换和扭曲,
我有一个UIViewController允许用户通过 UIImagePickerController 选择照片或视频。一旦他们选择其中之一,图像就会被分配给名为 var selectedImage 的
UIBarButtonItem *button = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemD
我在我的 View 中创建了一个导航栏,它应该左右各有 2 个按钮。问题是无论我做什么它都不会显示按钮/ View 。我该怎么做?这是到目前为止我的代码。 override func viewDidL
我需要知道 UIBarButtons 的 Y 和 X 位置,最好是它的宽度和高度。 我试过这个解决方案:UIBarButtonItem: How can I find its frame?但它对我不起
我正在学习 Objective-C,我正在尝试以编程方式添加 UIBarButtonItem。我在 viewDidLoad 中这样做: self.navigationItem.rightBarButt
我遇到了一个问题:我在我的 UiNavigation Controller 中以编程方式创建了一个 UIBarButton。但是,我希望它在按下时发出警报。但是,当我使用带有自定义文本的自定义栏按钮时
我有一组条形按钮,我通常使用类似这样的设置: NSArray *leftButtonArray = [[NSArray alloc]initWithObjects: backBarButton, s
目前我有一个导航栏,上面有一个栏按钮,它是在我的 Storyboard中创建的: 我想去掉栏按钮的白色部分,只保留图像。他们是这样做的方法吗? 当我尝试这段代码时,没有栏按钮: UIButton *b
我知道还有其他类似的问题,但到目前为止我还没有得到有效的答案,所以这就是我写这篇文章的原因。 我现在有以下代码来放置 leftBarButtonItem: let user = FIRAuth.
@IBOutlet weak var playStopButton: UIBarButtonItem! var playStopArray = [UIBarButtonSystemItem.Pause
由于UIBarButton 不是继承自UIResponder/UIControl,UIBarButton 上的点击事件是如何工作的? 最佳答案 Just create the UIBarButtonI
我的目标是以编程方式更改 UIBarButton(我用作 IBOutlet)的图像。 我在 stackoverflow 上找到了这个解决方案 change-image-of-uibutton-with
我正在后台线程上解压缩文件,并且正在主线程上调用 HomeViewController。在这个 View Controller 中,我在 UINavigationBar 上有一个 UIBarButto
我是一名优秀的程序员,十分优秀!