菜鸟教程小白 发表于 2022-12-11 19:48:51

ios - 如何在 Swift 中更改 UIPickerView 组件的字体大小?


                                            <p><p>当我在 <code>attributedTitleForRow</code> 中更改字体颜色和大小时,字体大小不会改变,但选定的行颜色会改变:</p>

<pre><code>func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -&gt; NSAttributedString? {
      var color: UIColor!
      var size: UIFont!
                switch component {
      case 0:
            if pickerView.selectedRow(inComponent: 0) == row {
                color = UIColor.init(red: 186/255, green: 61/255, blue: 62/255, alpha: 1.0)
                size = UIFont(name:&#34;Raleway&#34;, size:14)

            } else {
                color = UIColor.black
            }

            let attributes: = [
                NSForegroundColorAttributeName: color, NSFontAttributeName: size]
            return NSAttributedString(string: peopleCount, attributes: attributes)
      default:
            return NSAttributedString()
      }
    }
</code></pre>

<p>当我在 <code>viewForRow</code> 方法中更改字体颜色和大小时,所有行的颜色和字体大小都会发生变化:</p>

<pre><code>func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -&gt; UIView {

      var label = view as! UILabel!
      if label == nil {
            label = UILabel()
            label?.textColor = UIColor.red
      }
      switch component {
      case 0:

            label?.text = peopleCount
            label?.font = UIFont(name:&#34;Raleway&#34;, size:14)
            return label!
      default:
            return label!
      }

    }
</code></pre>

<p>所以,我的问题是如何更改所有行的字体大小,但只更改选定行的颜色?如:</p>

<p> <a href="/image/w8Ev3.png" rel="noreferrer noopener nofollow"><img src="/image/w8Ev3.png" alt="enter image description here"/></a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><pre><code>    func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -&gt; UIView {

    var label = view as! UILabel!
    if label == nil {
      label = UILabel()
      label?.textAlignment = .center
      //label?.textColor = UIColor.red
    }
    switch component {
    case 0:

            label?.text = peopleCount
            if(pickerView.selectedRow(inComponent: 0)==row){
            label?.textColor = UIColor.red
            }
            return label!

    default:
      return label!
    }

}
</code></pre>

<p>您可以像这样编辑您的代码,要查看标签颜色的变化,您必须在下面添加此代码。这与点击事件有关</p>

<pre><code>    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    pickerView.reloadAllComponents()

       }
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在 Swift 中更改 UIPickerView 组件的字体大小?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/44383150/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/44383150/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在 Swift 中更改 UIPickerView 组件的字体大小?