wake-up-neo.com

Schnelles Hinzufügen der Fußzeilenansicht in UITableView

Dies ist eigentlich eine Tabellenzelle und eine Tabellenzelle, und ich wollte nach dem Ende der Tabellenzelle eine Schaltfläche zum Senden hinzufügen, aber wie mache ich das?

Ich habe versucht, im Storyboard die Schaltfläche manuell hinzuzufügen, aber es funktioniert nicht, die Schaltfläche wird nicht angezeigt. Gibt es eine andere Möglichkeit?

Ich wollte gerne den Screenshot unten machen.

18
mimi93

StoryBoard verwenden

In TableView können Sie UIView ziehen, es wird als FooterView festgelegt, wenn Sie mehr als 0 Prototypzellen haben. Nach dem Ziehen können Sie es in der TableView-Hierarchie als Unteransicht sehen. Jetzt können Sie der Ansicht eine Beschriftungsschaltfläche hinzufügen. Sie können auch IBAction in ViewController-Klassendatei festlegen. 

Programmatisch

Folgen Sie 3 Schritten

  1. Erstellen Sie eine benutzerdefinierte Ansicht mit der Schaltfläche,

Swift 3.X / Swift 4.X

let customView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 50))
customView.backgroundColor = UIColor.red
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
button.setTitle("Submit", for: .normal)
button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
customView.addSubview(button)

Swift 2.X

let customView = UIView(frame: CGRectMake(0, 0, 200, 50))
customView.backgroundColor = UIColor.redColor()
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
button.setTitle("Submit", forState: .Normal)
button.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
customView.addSubview(button)
  1. Fügen Sie diese Ansicht in der Tabellenfußzeile hinzu.

Swift 2.X / Swift 3.X / Swift 4.X

myTblView.tableFooterView = customView
  1. sie können auf diese Schaltfläche in derselben Klasse Aktionen ausführen.

Swift 3.X / Swift 4.X

@objc func buttonAction(_ sender: UIButton!) {
    print("Button tapped")
}

Swift 2.X

func buttonAction(sender: UIButton!) {
  print("Button tapped")
}
50
Ujesh
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let footerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 50))
    return footerView
}

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 50
}
6

Swift 3/4

1. Wenn Sie eine Tabellenfußzeile hinzufügen möchten, die nur am Ende von TabelView sichtbar ist

let customView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 150))
customView.backgroundColor = UIColor.clear
let titleLabel = UILabel(frame: CGRect(x:10,y: 5 ,width:customView.frame.width,height:150))
titleLabel.numberOfLines = 0;
titleLabel.lineBreakMode = .byWordWrapping
titleLabel.backgroundColor = UIColor.clear
titleLabel.textColor = PTConstants.colors.darkGray
titleLabel.font = UIFont(name: "Montserrat-Regular", size: 12)
titleLabel.text  = "Payment will be charged to your Apple ID account at the confirmation of purchase. Subscription automatically renews unless it is canceled at least 24 hours before the end of the current period. Your account will be charged for renewal within 24 hours prior to the end of the current period. You can manage and cancel your subscriptions by going to your account settings on the App Store after purchase."
customView.addSubview(titleLabel)
tableView.tableFooterView = customView

2. Wenn Sie eine Abschnittsfußzeile hinzufügen möchten, die beim Scrollen durch den Abschnitt sichtbar ist.

Übernehmen Sie UITableViewDelegate und implementieren Sie die folgende Delegatmethode.

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let vw = UIView()
    vw.backgroundColor = UIColor.clear
    let titleLabel = UILabel(frame: CGRect(x:10,y: 5 ,width:350,height:150))
    titleLabel.numberOfLines = 0;
    titleLabel.lineBreakMode = .byWordWrapping
    titleLabel.backgroundColor = UIColor.clear
    titleLabel.font = UIFont(name: "Montserrat-Regular", size: 12)
    titleLabel.text  = "Footer text here"
    vw.addSubview(titleLabel)
    return vw
}

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 150
}

Fügen Sie UILabel als UITableView.Footer in Swift hinzu

    let footerView:UILabel = UILabel(frame: CGRect(x: 0, y: 0, width:320 , height: 500))
    footerView.text = "add description ro Timevc in order user will see the result of lesson time"
    footerView.numberOfLines = 0;
    footerView.sizeToFit()
    tableView.tableFooterView = footerView
    tableView.contentInset = (UIEdgeInsetsMake(0, 8, -footerView.frame.size.height, 8))
0
Bary Levy