//
// ViewController.swift
// RActionSheet
//
// Created by ray on 2017/8/15.
// Copyright © 2017年 ray. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
var label: UILabel!
var btn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let label = UILabel.init(frame: CGRect.init(x: 0, y: 100, width: RScreenW, height: 30))
label.font = UIFont.systemFont(ofSize: 15)
label.text = "有个大牛说:对待警告要像对待错误一样.有个大牛说:对待警告要像对待错误一样.有个大牛说:对待警告要像对待错误一样."
label.numberOfLines = 1
self.view.addSubview(label)
self.label = label
let btn = UIButton.init(type: UIButtonType.system)
btn.frame = CGRect.init(x: 0, y: label.frame.origin.y+label.frame.size.height, width: 50, height: 30)
btn.setTitle("展开", for: .normal)
btn.addTarget(self, action: #selector(showMore), for: UIControlEvents.touchUpInside)
self.btn = btn
self.view.addSubview(btn)
}
func showMore() {
if self.label.numberOfLines == 0 {
self.label.numberOfLines = 1
self.label.frame = CGRect.init(x: 0, y: 100, width: RScreenW, height: 30)
btn.frame.origin = CGPoint.init(x: 0, y: label.frame.origin.y+label.frame.size.height)
btn.setTitle("展开", for: .normal)
return
}
self.label.numberOfLines = 0
self.label.frame = CGRect.init(x: 0, y: 100, width: RScreenW, height: (self.label.text?.heightWithConstrainedWidth(width: RScreenW, font: self.label.font))!)
btn.frame.origin = CGPoint.init(x: 0, y: label.frame.origin.y+label.frame.size.height)
btn.setTitle("收起", for: .normal)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
extension String {
func heightWithConstrainedWidth(width: CGFloat, font: UIFont) -> CGFloat {
let constraintRect = CGSize(width: width, height: CGFloat.greatestFiniteMagnitude)
let boundingBox = self.boundingRect(with: constraintRect, options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil)
return boundingBox.height
}
}
iOS---简单的模仿一下朋友圈收起/展开
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。