Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 为什么uibarbuttonite图像总是模糊/模糊/像素化_Xcode_Swift_Uibutton_Uibarbuttonitem_Uinavigationitem - Fatal编程技术网

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