Xcode 为什么uibarbuttonite图像总是模糊/模糊/像素化
这是我目前的代码:Xcode 为什么uibarbuttonite图像总是模糊/模糊/像素化,xcode,swift,uibutton,uibarbuttonitem,uinavigationitem,Xcode,Swift,Uibutton,Uibarbuttonitem,Uinavigationitem,这是我目前的代码: var reply = UIBarButtonItem(image: UIImage(named: "reply"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("reply:")) self.navigationItem.rightBarButtonItem = reply 右上角的按钮总是模糊的。这是iPhone4s设备的屏幕截图,因此这不是视网膜相关问题 我尝试过不同的图像大小,
var reply = UIBarButtonItem(image: UIImage(named: "reply"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("reply:"))
self.navigationItem.rightBarButtonItem = reply
右上角的按钮总是模糊的。这是iPhone4s设备的屏幕截图,因此这不是视网膜相关问题
我尝试过不同的图像大小,从30x30到512x512,并使用customView添加图像。这些方法并没有解决这个问题
提前感谢。在IOS人机界面指南中,图标应为22x22 请查看此处的文档:
我用这个方法解决了这个问题:
var replyBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
replyBtn.setImage(UIImage(named: "reply"), forState: UIControlState.Normal)
replyBtn.addTarget(self.navigationController, action: Selector("reply:"), forControlEvents: UIControlEvents.TouchUpInside)
var item = UIBarButtonItem(customView: replyBtn)
self.navigationItem.rightBarButtonItem = item
它使用完全相同的图像显示一个非常清晰的按钮。尝试以下操作:
func createBarButton(image: String, size: CGSize, offset: (x: CGFloat, y: CGFloat) = (0,0), hightlightable: Bool = true, action: Selector) -> UIBarButtonItem {
let btn = UIButton(type: .custom)
let img = UIImage(named: image)
btn.setBackgroundImage(img, for: .normal)
btn.addTarget(self, action: action, for: .touchUpInside)
btn.frame = CGRect(x: offset.x, y: offset.y, width: size.width, height: size.height)
btn.adjustsImageWhenHighlighted = hightlightable
let view = UIView(frame: CGRect(x: 0, y: 0, width: size.width, height: size.height))
// view.bounds = view.bounds.offsetBy(dx: offset.x, dy: offset.y)
view.addSubview(btn)
let barButton = UIBarButtonItem(customView: view)
return barButton
}
self.navigationItem.rightBarButtonItem = createBarButton(image: "YOUR_IMAGE",
size: CGSize(width: 35, height: 35),
offset: (x: -10, y: 0),
action: #selector(showXY))
如果不能与Swift 2和xCode 6.4一起使用,则将最后一行//self.navigationItem.RightBarButtonim=item替换为self.navigationController?.navigationBar.topItem?.RightBarButtonim=item