2016-10-12 9 views
0

私のアプリケーションをXCode 8とSwift 3の言語構文に移植しました。これまでそうするので、私は私の現在の問題点カスタムフォントを設定し、問題の多くを持っていた:iOS 10と属性付きテキストのカスタムフォントを設定する

var sText = "Hello world, this is some text that I'm going to try to format ok?" 
var attText = NSMutableAttributedString(string: sText) 

var attrs = [NSFontAttributeName: UIFont(name: "Arial", size: 16)] 
attText.addAttributes(attrs, range: NSMakeRange(0, sText.characters.count)) 

lblLabel1.attributedText = attText 

ので、このコードは、「インスタンスに送信され、認識されないセレクター」と毎回クラッシュします。面白いことに、他のプロパティ(前景色など)を設定するだけでうまくいきます...フォントではありません。私はカスタムフォント、システムフォント、他の名前付きフォントを試しました...何も動作していないようです。他の誰かがこれにぶつかる?私はここで間違っている何かがありますか?このコードは、XCodeの7で正常に動作し、あなたが使用する前にそれをアンラップする必要があるので、XCodeを事前に8

おかげでさえ、レガシー・スウィフト...

ジェームズ

+1

どのようなエラーメッセージが表示されますか? – BJHStudios

+1

クラッシュした場合、エラーメッセージは何ですか?それは縛られていない問題ですか?もしそうなら、それは文字列が文字をどのように数えるかに関する問題だと思うので、 'NSMakeRange(0、(sString as NSString).length)'やそれに類するものを試してみてください。また、テキスト全体に対して同じ効果を設定したい場合は、 'attrs'を渡すことができる' NSMutableAttributedString' initメソッドを使用してください。 – Larme

+0

こんにちは、明確にするために: "インスタンスに送信された認識できないセレクタ"は私が得るエラーです。 –

答えて

1

UIFont(name:)は、オプションを返します。

var sText = "Hello world, this is some text that I'm going to try to format ok?" 
var attText = NSMutableAttributedString(string: sText) 
if let arial = UIFont(name: "Arial", size: 16) { 
    var attrs = [NSFontAttributeName: arial] 
    attText.addAttributes(attrs, range: NSMakeRange(0, sText.characters.count)) 
    // ... 
} 
+0

iOSプレイグラウンドのXcode 8でテストされています。 – Moritz

+1

あなたは絶対に正しい友達です!それはそれだった。助けてくれてありがとう –

関連する問題