• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:48:51 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> 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:"Raleway", size:14)

            } else {
                color = UIColor.black
            }

            let attributes: [String: AnyObject] = [
                NSForegroundColorAttributeName: color, NSFontAttributeName: size]
            return NSAttributedString(string: peopleCount[row], attributes: attributes)
        default:
            return NSAttributedString()
        }
    }

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

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {

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

            label?.text = peopleCount[row]
            label?.font = UIFont(name:"Raleway", size:14)
            return label!
        default:
            return label!
        }

    }

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

enter image description here



Best Answer-推荐答案


    func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> 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[row]
            if(pickerView.selectedRow(inComponent: 0)==row){
            label?.textColor = UIColor.red
            }
            return label!

    default:
        return label!
    }

}

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

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

       }

关于ios - 如何在 Swift 中更改 UIPickerView 组件的字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44383150/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap