【问题标题】:Swift ios how to change font , font color when tap and uptate , and some other properties in a segment controlSwift ios如何在点击和更新时更改字体、字体颜色以及段控件中的一些其他属性
【发布时间】:2018-09-25 19:35:15
【问题描述】:

我想使用段控制来设计选项卡,但我所知道的关于它的所有属性的东西现在还很有限。第一张图片是我现在的第二张图片是我想要实现的

我真正想要实现的是段控制,其中包含所有、待处理、过期、已完成的项目。有没有人知道如何实现分段项目之间的距离,还可以根据下面的设计示例更改字体颜色和样式。谢谢。

到目前为止我有什么。

let appearance = SMSegmentAppearance()
            appearance.segmentOnSelectionColour =  UIColor(red: 1, green: 0.8706, blue: 0.7608, alpha: 1.0)
            appearance.segmentOffSelectionColour = UIColor(red: 1, green: 0.8706, blue: 0.7608, alpha: 1.0)
            appearance.titleOnSelectionFont = UIFont.systemFont(ofSize: 25.0)
//            segmentControlView.font = UIFont(name: "Avenir-Black", size: 12)
            appearance.titleOffSelectionFont = UIFont.systemFont(ofSize: 25.0)
            appearance.contentVerticalMargin = 10

            /*
             Init SMsegmentView
             Set divider colour and width here if there is a need
             */
            let segmentFrame = CGRect(x: self.margin, y: 5, width: self.segmentControlView.frame.size.width - self.margin*8, height: 50.0)
            self.segmentView = SMSegmentView(frame: segmentFrame, dividerColour: UIColor(red: 1, green: 0.8706, blue: 0.7608, alpha: 1.0), dividerWidth: 1.0, segmentAppearance: appearance)
            self.segmentView.backgroundColor = UIColor(red: 1, green: 0.8706, blue: 0.7608, alpha: 1.0)

            self.segmentView.layer.cornerRadius = 5.0
            self.segmentView.layer.borderColor = UIColor(red: 1, green: 0.8706, blue: 0.7608, alpha: 1.0).cgColor
            self.segmentView.layer.borderWidth = 1.0


            self.segmentView.addTarget(self, action: #selector(selectSegmentInSegmentView(segmentView:)), for: .valueChanged)

            self.segmentView.addSegmentWithTitle("All", onSelectionImage: UIImage(named: ""), offSelectionImage: UIImage(named: ""))

            self.segmentView.addSegmentWithTitle("Pending", onSelectionImage: UIImage(named: ""), offSelectionImage: UIImage(named: ""))

                self.segmentView.addSegmentWithTitle("Finished", onSelectionImage: UIImage(named: ""), offSelectionImage: UIImage(named: ""))

                self.segmentView.addSegmentWithTitle("Expired", onSelectionImage: UIImage(named: ""), offSelectionImage: UIImage(named: ""))

//            var ownerNames = [String]()
//
//            if  fetchedToDoItems.count > 0 {
//                for item in fetchedToDoItems {
//                    if item.houseNo == loggedInUserHouseNumber &&
//                        !ownerNames.contains(item.ownerName!) {
//                        ownerNames.append(item.ownerName!)
//                    }
//                }
//
//                for name in ownerNames {
//                    // Add segments
//                    self.segmentView.addSegmentWithTitle(name, onSelectionImage: UIImage(named: ""), offSelectionImage: UIImage(named: ""))
//                }
//
//            }

            // Set segment with index 0 as selected by default
            self.segmentView.selectedSegmentIndex = 0
            self.segmentControlView.addSubview(self.segmentView)

【问题讨论】:

  • 哪一个是你的段控制
  • 标签 all ,pending ,finished 是段先生
  • 片段标题
  • 那么你想要什么,你想改变什么文字颜色。?
  • 我想实现第二张图片的设计,我目前的输出是第一张图片,我只想实现所有,待处理,完成,过期如何查看第二张图片

标签: ios swift segment


【解决方案1】:

正如我所看到的文档:

您只需要更改字体样式和大小:

你可以试试:

步骤:1 打印字体

func printFonts() {
    let fontFamilyNames = UIFont.familyNames
    for familyName in fontFamilyNames {
        print("------------------------------")
        print("Font Family Name = [\(familyName)]")
        let names = UIFont.fontNames(forFamilyName: familyName)
        print("Font Names = [\(names)]")
    }
}

步骤:2 设置外观:-

appearance.titleOnSelectionFont = UIFont(name: "TradeGothicLTStd-Cn18", size: 10.0)!
appearance.titleOffSelectionFont = UIFont(name: "TradeGothicLTStd-Cn18", size: 10.0)!

希望对您有所帮助!

编辑以将 Selected 设置为 Black,Unselected 设置为 White

appearance.segmentOffSelectionColour = UIColor.white //UnSelected Colour
appearance.segmentOnSelectionColour = UIColor.black //Selected Colour

【讨论】:

  • 编辑答案以更改选项卡栏中的选定和未选定颜色。
猜你喜欢
  • 2014-05-05
  • 2011-10-03
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 2015-10-29
  • 2019-08-24
  • 2015-07-25
  • 2020-12-09
相关资源
最近更新 更多