在picker视图中为行添加的已实现标题没有更改字体?

时间:2016-11-29 21:38:58

标签: ios swift uipickerview

我试图在我的选择器视图中更改标题的字体,但由于某种原因我不能。我可以更改标题的颜色,但字体保持不变?

 func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
        let attrTitle = NSAttributedString(string: splitPickerSource[row], attributes: [NSFontAttributeName: UIFont(name: "Avenir-Heavy", size: 17.0)!, NSForegroundColorAttributeName: UIColor.darkGray])
        return attrTitle
    }

或者,我可以为viewForRow实施UIPickerView委托方法,并从那里添加新标签。

在尝试打印输出attrTitle

时,有一些疯狂的调试信息
Share Bill With{ NSColor = "UIExtendedSRGBColorSpace 0.117647 0.117647 0.117647 1"; NSFont = "<UICTFont: 0x7fb5f8d14080> font-family: \"Avenir-Heavy\"; font-weight: bold; font-style: normal; font-size: 14.00pt";

任何人都知道这种情况,为什么我不能修改字体 attributedTitleForRow委托方法?

2 个答案:

答案 0 :(得分:1)

试试这个

<!DOCTYPE html>
<html>

<head>
    <title></title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- JQuery -->
    <script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>
    <!-- Latest compiled and minified CSS -->
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
        crossorigin="anonymous">
    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
        crossorigin="anonymous"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.29.0/js/jquery.tablesorter.combined.js" integrity="sha256-AQTn9CwiNvZG2zsoT0gswugjZp0alCQySLyt9brT9Cg="
        crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.29.0/js/jquery.tablesorter.js" integrity="sha256-serXvhbeEKdQIfTFSD3wpNCGNx2+/9py7VXfwLhYTfk="
        crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.29.0/js/jquery.tablesorter.widgets.js" integrity="sha256-U+0DXO4scYcNVpt7pnud6Fx3KZqK2I5mI6KOeAjSqOE="
        crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.29.0/css/theme.bootstrap_3.min.css"
        integrity="sha256-dXZ9g5NdsPlD0182JqLz9UFael+Ug5AYo63RfujWPu8=" crossorigin="anonymous" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.29.0/css/theme.default.min.css"
        integrity="sha256-kZJ4kB78IbXuxMtCpmaXzii8vxEKtu8pjicH62E0/qM=" crossorigin="anonymous" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.29.0/css/theme.bootstrap.min.css"
        integrity="sha256-dXZ9g5NdsPlD0182JqLz9UFael+Ug5AYo63RfujWPu8=" crossorigin="anonymous" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.29.0/css/jquery.tablesorter.pager.min.css"
        integrity="sha256-x+whz5gQKEXx3S3pxwmxPhC1OWpRiHaPXUW5Yt8/fzg=" crossorigin="anonymous" />
    <style>
    </style>
    <script>

        $(document).ready(function () {
            ("#myTable").tablesorter();
        });
    </script>

</head>


<body>
    <div class="container">
        <div class="col-md-12">
            <table class="table table-striped tablesorter" id="myTable">
                <thead>
                    <tr>
                        <th>Last Name</th>
                        <th>First Name</th>
                        <th>Email</th>
                        <th>Due</th>
                        <th>Web Site</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Smith</td>
                        <td>John</td>
                        <td>jsmith@gmail.com</td>
                        <td>$50.00</td>
                        <td>http://www.jsmith.com</td>
                    </tr>
                    <tr>
                        <td>Bach</td>
                        <td>Frank</td>
                        <td>fbach@yahoo.com</td>
                        <td>$50.00</td>
                        <td>http://www.frank.com</td>
                    </tr>
                    <tr>
                        <td>Doe</td>
                        <td>Jason</td>
                        <td>jdoe@hotmail.com</td>
                        <td>$100.00</td>
                        <td>http://www.jdoe.com</td>
                    </tr>
                    <tr>
                        <td>Conway</td>
                        <td>Tim</td>
                        <td>tconway@earthlink.net</td>
                        <td>$50.00</td>
                        <td>http://www.timconway.com</td>
                    </tr>
                </tbody>
            </table>

        </div>

    </div>


</body>

</html>

enter image description here

答案 1 :(得分:0)

你输错了,这就是为什么它不起作用。它应该是

    let attrTitle = NSAttributedString(string: splitPickerSource[row], attributes: [NSFontAttributeName: UIFont(name: "Avenir-Heavy", size: 17.0)!, NSForegroundColorAttributeName: UIColor.darkGray]) 

我删除了额外的大小:NSFontAttributeName应该结束后的14。