swift实现在label中显示当前时间

swift获取当前时间通过NSDate()实现。但由于NSDate获取的格式不是String,所以不能直接被用于显示在label中。解决方案如下:

首先在界面中加入一个label,并拖动到ViewController.swift代码中添加关联

    @IBOutlet weak varCurrentTime: UILabel!

viewdidload中加入以下代码:

        var date = NSDate()

        var dateformatter= DateFormatter()

        dateformatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

        var strNowTime= dateformatter.string(from: date as Date) as String

        CurrentTime.text =strNowTime;

=======================

插入一个关于时间格式的问题12小时制时间格式与24小时制时间格式之间只差一个大小写

  • 12小时制:

    dateformatter.dateFormat = "yyyy-MM-dd hh:mm:ss"

  • 24小时制

    dateformatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

两者区别只在于表示小时的hh大小写

================================

所以, 最终实现“在label中显示当前时间”的代码如下:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak varCurrentTime: UILabel!

    override func viewDidLoad() {

        super.viewDidLoad()

    

        var date = NSDate()

        var dateformatter= DateFormatter()

        dateformatter.dateFormat = "yyyy-MM-ddHH:mm:ss"

        var strNowTime= dateformatter.string(from: date as Date) as String

        CurrentTime.text =strNowTime;

    }

}

 


### 回答1: Swift的yylabel可以非常方便地实现Label展开收起的功能。一般来说,需要两个Label:一个是原始Label,一个是展开后的Label实现方法如下: 1.将展开后的文本保存为一个String类型的变量,如let expandText = "这是展开后的文本"。 2.创建一个UILabel,设置它的text为原始文本。 3.使用yylabel的sizeThatFits方法获取原始Label所需的大小,并将其保存到一个变量,如let originLabelSize = myLabel.sizeThatFits(CGSize(width: myLabel.bounds.width, height: CGFloat.greatestFiniteMagnitude))。 4.创建一个YYLabel,将它的text设置为展开后的文本。同时设置它的preferredMaxLayoutWidth为原始Label的宽度。 5.将展开后的Label添加到原始Label上面,设置它的frame为CGRect(x: 0, y: originLabelSize.height, width: originLabelSize.width, height: expandLabelSize.height)。 6.创建一个UIButton,并将它添加到原始Label上面。设置它的frame为原始Label的frame,并将它的backgroundColor设置为.clearColor()。 7.在按钮的点击事件,判断是否展开,如果是,则将原始Label的text设置为展开后的文本,并设置展开后的Label的hidden为true;如果不是,则将原始Label的text设置为原始文本,并设置展开后的Label的hidden为false。 这样就完成了Label的展开收起功能。当然,如果需要更加复杂的展开收起效果,也可以使用yylabel的attributedText和heightForAttributedString方法来实现。 ### 回答2: Swift的yylabel可以实现label的展开收起,具体实现如下: 1. 首先需要导入YYText库 2. 设置需要展开收起的label,例如: ``` let label = YYLabel() label.text = "这是需要展开收起的文本..." self.view.addSubview(label) ``` 3. 设置label的属性,例如: ``` label.numberOfLines = 3 // 设置初始最大行数 label.truncationToken = NSMutableAttributedString(string: " ...展开") // 设置展开后的文本 label.highlightTruncationToken = NSMutableAttributedString(string: " 收起") // 设置收起时用户点击的文本 ``` 4. 定义一个布尔类型的变量来记录label的展开状态 ``` var isExpanded = false ``` 5. 定义一个方法来处理label的展开收起状态 ``` func toggleExpansion() { if isExpanded { label.numberOfLines = 3 label.truncationType = .end // 设置为断末尾 label.highlightTruncationToken = NSMutableAttributedString(string: " 收起") } else { label.numberOfLines = 0 // 0代表根据label内容自动调整行数 label.truncationType = .none // 设置为无断点 label.highlightTruncationToken = NSMutableAttributedString(string: " ...展开") } isExpanded = !isExpanded } ``` 6. 在需要展开收起的事件调用该方法即可,例如: ``` let tapGesture = UITapGestureRecognizer(target: self, action: #selector(toggleExpansion)) label.addGestureRecognizer(tapGesture) ``` 这样就可以通过点击label实现展开收起功能了。 ### 回答3: Swift的yylabel库可以实现label展开收起的效果。 首先,我们可以使用yylabel的NSAttributedString属性来设置label的样式和内容。然后,通过yylabel的textLayout属性,将NSAttributedString转换为YYTextLayout对象,这个对象存储着内容的布局信息,包括文本高度、行数等信息。 接下来,我们可以根据需要展开或收起的状态,设置label的最大行数,使其在展开和收起状态下的高度不同。 最后,我们可以添加手势识别器,来响应用户的点击事件,实现label的展开和收起。当用户点击label时,我们可以根据当前的状态来判断该做何响应:如果当前是展开状态,则将label的最大行数设置为1,让其收起;如果当前是收起状态,则将label的最大行数设置为0,让其展开。 通过以上步骤,我们就可以使用yylabel实现label的展开收起效果了。这个库非常方便易用,而且扩展性也非常强,可以满足很多复杂的需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值