Swiftを使用したXcodeのUIButtonに画像を挿入しようとしています。ボタンはキーボード拡張機能にあり、iOSが既に内蔵キーボードにあるような「グローブ」アイコンを挿入しようとしています。私は地球儀絵文字とユニコード(これは自動的に絵文字として取り上げられる)を使用していましたが、それは良く見えませんでした。UIButtonのUIImageでベクター化された画像
これで、どのファイルを使用していても、私の画像はすべてぼやけています。これまでのところ、22pt、200pt、600pt、svg、pdfの画像を使用しています。運がない。
これは以下のようにそれが見えるものです:これはアップル1は、すべてがシャープ、どのように見えるかです Blurry image
:ボタンのSharp image
私のコードはこれです:
//Set an image to fit inside a button
let btn = nextKeyboardButton
let image = UIImage(named: "globe")!
var scaledImage = image
var targetWidth : CGFloat = 0
var targetHeight : CGFloat = 0
let spacing : CGFloat = 10
if(btn.frame.width < btn.frame.height){
targetWidth = round(btn.frame.width - (spacing * 2))
targetHeight = targetWidth
} else {
targetHeight = round(btn.frame.height - (spacing * 2))
targetWidth = targetHeight
}
UIGraphicsBeginImageContext(CGSizeMake(targetWidth, targetHeight))
image.drawInRect(CGRectMake(0, 0, targetWidth, targetHeight))
scaledImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
btn.setImage(scaledImage, forState: .Normal)
btn.setTitle("", forState: .Normal)
btn.tintColor = UIColor.blackColor()
として、アイコンは1:1、私は同じ幅と高さを使用します。しかし、私は別のアイコン/画像についても同じ(作業中の)アプローチが必要になります。私のタブバーに25,50,75ptで使用している他のアイコン/画像は、きれいに見えます。また、iPhone 4sまたは6 Plusの場合、どのシミュレータを使用するかは関係ありません。
また、これには他に解決策がありますか?私はすべてのグローブである別のフォントを使用しようとしましたが、XCodeはエディタにそれをリストしません。私はまた、世界の絵文字をペイントしようとしましたが、ユニコード文字を使用しますが、それは絵文字としてピックアップされます....だから..助け? :)
私はそれが些細なことは知っていますが、@ 2xと@ 3xを使って大きな画像の名前を終了しましたか?また、PNGで試しましたか?私は通常それを使用し、それは完璧に見えます。また、ポイントではなくピクセル単位でイメージを保存しようとしましたか? – Lawrence413
2つの問題があります:1.アセットファイルのベクターイメージは、ビルド時にPNGファイルに変換されるので、スケーリング時に(PDFがネイティブにレンダリングされた場合とは対照的に)ぼやけていることが保証されます。2. UIGraphicsBeginImageContextは、デバイスのスケーリングを使用します。あなたは 'たいUIGraphicsBeginImageContextWithOptions(サイズは、NO、0)' –
いや、私は任意のため、2倍を入れて、正しい3倍して覚えて、たくさんのことを試してみました。私はたとえどちらが使われたのかを知るために色を変えることを考えました。私はピクセルとポイントの両方を試しました。しかし、私はUIGraphicsBeginImageContextがここで問題になると疑っていました。私はそれに精通していません。私はそれを試してみましょう! :) – dkcas11