加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift之自定义UITableViewCell

发布时间:2020-12-14 06:15:26 所属栏目:百科 来源:网络整理
导读:主要是在重写父类的 init(style:UITableViewCellStyle,reuseIdentifier:String?)中添加要实现的部分,比如下面在cell中添加几个Label,获取改变原有cell中subViews子控件的位置坐标、字体颜色、背景颜色等等。 import UIKitclass HomeTableViewCell: UITable

主要是在重写父类的init(style:UITableViewCellStyle,reuseIdentifier:String?)中添加要实现的部分,比如下面在cell中添加几个Label,获取改变原有cell中subViews子控件的位置坐标、字体颜色、背景颜色等等。

import UIKit

class HomeTableViewCell: UITableViewCell {

    var addressView:UIView?
    
    var addressLabel:UILabel?
    var distanceLabel:UILabel?
    
    required init?(coder aDecoder:NSCoder) {
        super.init(coder: aDecoder)
    }
    
    override init(style:UITableViewCellStyle,reuseIdentifier:String?) {
        
        super.init(style: style,reuseIdentifier: reuseIdentifier)
        self.setUpUI();
    }
    
    func setUpUI()
    {
        self.addressView = UIView(frame: CGRect(x: 0,y: 0,width: SCREEN_WIDTH,height: 25))
        self.addressLabel = UILabel(frame: CGRect(x: 0,width: 200,height: 25))
        self.addressLabel?.textColor = UIColor.lightGray
        self.addressLabel?.font = UIFont.systemFont(ofSize: 15)
        self.distanceLabel = UILabel(frame: CGRect(x: 0,width: 100,height: 25))
        self.distanceLabel?.textColor = UIColor.lightGray
        self.distanceLabel?.font = UIFont.systemFont(ofSize: 15)
        self.distanceLabel?.textAlignment = .right
        
        self.addressView?.addSubview(self.addressLabel!)
        self.addressView?.addSubview(self.distanceLabel!)
        
        self.addSubview(self.addressView!)
        
        self.detailTextLabel?.textColor = UIColor.lightGray
        
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
        //        let imgHeight:CGFloat = (self.imageView?.frame.size.height)!
        //        let imgyy:CGFloat = (self.bounds.size.height - imgHeight * 0.9)/2
        //        var imgRect = self.imageView?.frame
        //        imgRect?.origin.y = imgyy
        //        imgRect?.size = CGSize(width: imgHeight * 0.9,height: imgHeight * 0.9)
        //        self.imageView?.frame = imgRect!
        //
        //        self.imageView?.layer.borderWidth = 0.3
        //        self.imageView?.layer.borderColor = UIColor.white.cgColor
        //        self.imageView?.layer.cornerRadius = imgHeight/2
        let cellHeight = self.bounds.size.height
        
        //detailTextLabel origin y
        var detailLabelRect = self.detailTextLabel?.frame
        let detailY = (cellHeight - (detailLabelRect?.size.height)!) / 2
        detailLabelRect?.origin.y = detailY
        self.detailTextLabel?.frame = detailLabelRect!
        
        //textLabel rect
        var textRect = self.textLabel?.frame
        textRect?.origin.y = detailY - 5 - (textRect?.size.height)!
        self.textLabel?.frame = textRect!
        
        //addressView rect
        let addrViewX = detailLabelRect?.origin.x
        let addrViewY = (detailLabelRect?.origin.y)! + (detailLabelRect?.size.height)! + 3
        let addrViewWidth = SCREEN_WIDTH - addrViewX!
        
        
        self.addressView?.frame = CGRect(x: addrViewX!,y: addrViewY,width: addrViewWidth,height: 25)
        let disLabelX = (self.addressLabel?.frame.size.width)! - 110
        var disLabelRect = self.distanceLabel?.frame
        
        disLabelRect?.origin.x = disLabelX
        
        self.distanceLabel?.frame = disLabelRect!
        
        
        
    }



    override func setSelected(_ selected: Bool,animated: Bool) {
        super.setSelected(selected,animated: animated)

        // Configure the view for the selected state
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读