56 lines
1.4 KiB
Swift
56 lines
1.4 KiB
Swift
//
|
|
// ConfirmLoadMoreTableViewCell.swift
|
|
// Tusker
|
|
//
|
|
// Created by Shadowfacts on 6/23/21.
|
|
// Copyright © 2021 Shadowfacts. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
protocol ConfirmLoadOlderTableViewCellDelegate: AnyObject {
|
|
func confirmLoadMore()
|
|
}
|
|
|
|
class ConfirmLoadMoreTableViewCell: UITableViewCell {
|
|
|
|
var confirmLoadMore: (() -> Void)?
|
|
|
|
@IBOutlet weak var confirmButton: UIButton!
|
|
|
|
private var isLoading = false
|
|
|
|
override func awakeFromNib() {
|
|
super.awakeFromNib()
|
|
|
|
if #available(iOS 15.0, *) {
|
|
var config = UIButton.Configuration.tinted()
|
|
config.title = "Load More"
|
|
config.showsActivityIndicator = false
|
|
config.imagePadding = 4
|
|
confirmButton.configuration = config
|
|
confirmButton.configurationUpdateHandler = { [unowned self] button in
|
|
button.configuration?.showsActivityIndicator = self.isLoading
|
|
}
|
|
}
|
|
}
|
|
|
|
override func prepareForReuse() {
|
|
super.prepareForReuse()
|
|
|
|
isLoading = false
|
|
if #available(iOS 15.0, *) {
|
|
confirmButton.setNeedsUpdateConfiguration()
|
|
}
|
|
}
|
|
|
|
@IBAction func loadMorePressed(_ sender: Any) {
|
|
confirmLoadMore?()
|
|
if #available(iOS 15.0, *) {
|
|
isLoading = true
|
|
confirmButton.setNeedsUpdateConfiguration()
|
|
}
|
|
}
|
|
|
|
}
|