文字間隔をUILabel(here)に設定する方法を見つけましたが、この方法はUIButtonでは機能しません。誰もそれを行う方法を知っていますか? 'NSConcreteAttributedString' (0x19e508660) to 'NSMutableAttributedString' (0x19e506a40).
SwiftでUIButtonの文字間隔を変更する方法は?
答えて
- 質問に、あなたの
UIButton
に
- コール
setAttributedTitle(_ ,forState:)
をリンクのようなNSAttributedString
を行います。ここではは、私はそれは私にエラーをスロー
let buttonString = agreementButton.attributedTitleForState(.Normal) as! NSMutableAttributedString buttonString.addAttribute(NSKernAttributeName, value: 1.0, range: NSMakeRange(0, buttonString.length)) agreementButton.setAttributedTitle(buttonString, forState: .Normal)
を使用しているコードです
は(未テスト)これを試してみてください:
let title = agreementButton.titleForState(.Normal)
let attributedTitle = NSAttributedString(string: title, attributes: [NSKernAttributeName: 1.0])
agreementButton.setAttributedTitle(attributedTitle, forState: .Normal)
完了。私はコードとエラーで質問を更新しました。 –
いいえ、エラー:タイプ 'UIButton'の値にメンバー 'setAttributedTitleForState'がありません –
私の悪いです。 'setAttributedTitle'だったはずです。編集済み –
Code Differentからソリューションは、テキストの色の設定を尊重しません。また、ストーリーボードでもspacingパラメータを使用できるようにUIButtonクラスをオーバーライドできます。
スウィフト3
class UIButtonWithSpacing : UIButton
{
override func setTitle(_ title: String?, for state: UIControlState)
{
if let title = title, spacing != 0
{
let color = super.titleColor(for: state) ?? UIColor.black
let attributedTitle = NSAttributedString(
string: title,
attributes: [NSKernAttributeName: spacing,
NSForegroundColorAttributeName: color])
super.setAttributedTitle(attributedTitle, for: state)
}
else
{
super.setTitle(title, for: state)
}
}
fileprivate func updateTitleLabel_()
{
let states:[UIControlState] = [.normal, .highlighted, .selected, .disabled]
for state in states
{
let currentText = super.title(for: state)
self.setTitle(currentText, for: state)
}
}
@IBInspectable var spacing:CGFloat = 0 {
didSet {
updateTitleLabel_()
}
}
}
スウィフト3.0まさに問題である
extension UIButton{
func addTextSpacing(spacing: CGFloat){
let attributedString = NSMutableAttributedString(string: (self.titleLabel?.text!)!)
attributedString.addAttribute(NSKernAttributeName, value: spacing, range: NSRange(location: 0, length: (self.titleLabel?.text!.characters.count)!))
self.setAttributedTitle(attributedString, for: .normal)
}
}
btnRegister.addTextSpacing(spacing: 4.5)
extension UILabel{
func addTextSpacing(spacing: CGFloat){
let attributedString = NSMutableAttributedString(string: self.text!)
attributedString.addAttribute(NSKernAttributeName, value: spacing, range: NSRange(location: 0, length: self.text!.characters.count))
self.attributedText = attributedString
}
}
lblOne.addTextSpacing(spacing: 4.5)
extension UITextField{
func addPlaceholderSpacing(spacing: CGFloat){
let attributedString = NSMutableAttributedString(string: self.placeholder!)
attributedString.addAttribute(NSKernAttributeName, value: spacing, range: NSRange(location: 0, length: self.placeholder!.characters.count))
self.attributedPlaceholder = attributedString
}
}
txtUserName.addPlaceholderSpacing(spacing: 4.5)
extension UINavigationItem{
func addSpacing(spacing: CGFloat){
let attributedString = NSMutableAttributedString(string: self.title!)
attributedString.addAttribute(NSKernAttributeName, value: spacing, range: NSRange(location: 0, length: self.title!.characters.count))
let label = UILabel()
label.textColor = UIColor.black
label.font = UIFont.systemFont(ofSize: 15, weight: UIFontWeightBold)
label.attributedText = attributedString
label.sizeToFit()
self.titleView = label
}
}
navigationItem.addSpacing(spacing: 2.5)
- 1. SwiftでUIButtonの状態をプログラムで変更する方法
- 2. MATLABでグラフの軸の間隔を変更する方法は?
- 3. 間隔で文字を入力する方法は?
- 4. GraphicsPath.AddStringで文字間隔を管理する方法は?
- 5. 静的テキストの間隔を追加する方法または文字間隔を設定する方法
- 6. VSコード:文字間隔を変更する
- 7. 文字間隔
- 8. System.Drawing.Font - 文字間隔を変更しますか?
- 9. Swiftでは、添え字付き文字列の文字を変更する方法は? Cのように
- 10. cc.LabelTTF:文字間の間隔
- 11. Swiftの変数変更時に文字列を更新する方法
- 12. Swift NSTimer動的に間隔を変更する
- 13. Matlabでは、プロット間隔の変更方法は?
- 14. TextBoxコントロールの文字間隔/幅の変更
- 15. SharpDX文字間隔
- 16. java.awt.font文字間隔
- 17. Swift 3でcollectionviewセル間の間隔を設定する方法は?
- 18. WPF:RTBでWord文書の行間隔を変更する
- 19. 角2 - RxJS Observableの間隔を変更する方法
- 20. 縦レイアウトでの文字間隔の使用方法html
- 21. NIMで文字列の大文字小文字を変更する方法は?
- 22. Eclipseコードエディタの文字間隔
- 23. Silverlightの文字間隔
- 24. プルリクエストコードレビュー時の文字間隔
- 25. UIButtonのタイトルを変更するattributedStrings enumerateSubstrings文字列の範囲
- 26. Swift - UICollectionView:ヘッダーのラベル間隔を自動レイアウトする方法
- 27. AndroidでActionBarアイコンの間隔を個別に変更する方法は?
- 28. jsPDFの文字間隔を.text()メソッドで
- 29. ExcelでWord文書の行間隔を変更します
- 30. UICollectionViewのセル間隔を変更する
:ここでは、更新スウィフト3溶液が来ますか?あなたのために働いていないコードを投稿してください。 –
破損したコードを表示するために更新されました。 –