87 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Swift
		
	
	
	
		
		
			
		
	
	
			87 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Swift
		
	
	
	
|  | // | ||
|  | //  FriendsNoticeOnceView.swift | ||
|  | //  Crush | ||
|  | // | ||
|  | //  Created by Leon on 2025/8/15. | ||
|  | // | ||
|  | 
 | ||
|  | import UIKit | ||
|  | 
 | ||
|  | class FriendsNoticeOnceView: UIView { | ||
|  |     var icon: UIImageView! | ||
|  |     var textLabel: LineSpaceLabel! | ||
|  |     var closeButton: UIButton! | ||
|  |      | ||
|  |     var tapCloseAction: (()-> Void)? | ||
|  |     override init(frame: CGRect) { | ||
|  |         super.init(frame: frame) | ||
|  |         setupViews() | ||
|  |         setupData() | ||
|  |         setupEvent() | ||
|  |     } | ||
|  | 
 | ||
|  |     required init?(coder: NSCoder) { | ||
|  |         fatalError("init(coder:) has not been implemented") | ||
|  |     } | ||
|  | 
 | ||
|  |     private func setupViews() { | ||
|  |         backgroundColor = .c.cpn | ||
|  |         cornerRadius = 8 | ||
|  | 
 | ||
|  |         icon = { | ||
|  |             let v = UIImageView() | ||
|  |             v.image = UIImage(named: "icon_pink_heart") | ||
|  |             addSubview(v) | ||
|  |             v.snp.makeConstraints { make in | ||
|  |                 make.centerY.equalToSuperview() | ||
|  |                 make.leading.equalToSuperview().offset(24) | ||
|  |                 make.size.equalTo(CGSize(width: 24, height: 24)) | ||
|  |             } | ||
|  |             return v | ||
|  |         }() | ||
|  | 
 | ||
|  |         closeButton = { | ||
|  |             let v = UIButton() | ||
|  |             let image = MWIconFont.image(fromIcon: .delete, size: CGSize(width: 12, height: 12), color: .text) | ||
|  |             v.addTarget(self, action: #selector(tapClose), for: .touchUpInside) | ||
|  |             v.contentMode = .center | ||
|  |             v.setImage(image, for: .normal) | ||
|  |             addSubview(v) | ||
|  |             v.snp.makeConstraints { make in | ||
|  |                 make.size.equalTo(CGSize(width: 44, height: 44)) | ||
|  |                 make.centerY.equalToSuperview() | ||
|  |                 make.trailing.equalToSuperview().offset(0) | ||
|  |             } | ||
|  |             return v | ||
|  |         }() | ||
|  | 
 | ||
|  |         textLabel = { | ||
|  |             let v = LineSpaceLabel() | ||
|  |             let typo = CLSystemToken.typography(token: .tls) | ||
|  |             v.config(typo) | ||
|  |             v.textColor = .text | ||
|  |             addSubview(v) | ||
|  |             v.snp.makeConstraints { make in | ||
|  |                 make.leading.equalTo(icon.snp.trailing).offset(16) | ||
|  |                 make.trailing.equalTo(closeButton.snp.leading).offset(0) | ||
|  |                 make.top.equalToSuperview().offset(12) | ||
|  |                 make.bottom.equalToSuperview().offset(-12) | ||
|  |             } | ||
|  |             return v | ||
|  |         }() | ||
|  |     } | ||
|  | 
 | ||
|  |     private func setupData() { | ||
|  |         textLabel.text = "The heartbeat value above 12.0℃ can appear in the relationship list" | ||
|  |     } | ||
|  | 
 | ||
|  |     private func setupEvent() { | ||
|  |     } | ||
|  | 
 | ||
|  |     @objc func tapClose() { | ||
|  |          AppCache.cache(key: CacheKey.friendsHeartBeatShowedOnce.rawValue, value: true) | ||
|  |         tapCloseAction?() | ||
|  |         removeFromSuperview() | ||
|  |     } | ||
|  | } |