roomListにルーム一覧を保存
var dataHelper:DatabaseHelper!
var roomList:[ChatRoom] = []
override func viewDidLoad() {
...
if uid == "" {
...
} else {
print(uid)
dataHelper = DatabaseHelper()
dataHelper.getMyRoomList(result: {
result in
self.roomList = result
self.tableView.reloadData()
})
}
}
TableViewにデータを表示する
以前までは、TableViewのセルのレイアウトはデフォルトの物を使用していましたが、今回は、セルの中にパーツを配置しており、カスタマイズされています。
配置したパーツを取得する
タグを指定することで、配置したパーツを操作できるようになります。
let imageView = cell?.viewWithTag(1) as! UIImageView
//円の形に表示します
imageView.layer.cornerRadius = imageView.frame.size.width * 0.5
imageView.clipsToBounds = true
セルの高さを指定する
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 80.0
}
完成したコード
import UIKit
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var dataHelper:DatabaseHelper!
var roomList:[ChatRoom] = []
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let uid = AuthHelper().uid()
if uid == "" {
performSegue(withIdentifier: "login", sender: nil)
} else {
print(uid)
dataHelper = DatabaseHelper()
dataHelper.getMyRoomList(result: {
result in
self.roomList = result
self.tableView.reloadData()
})
}
}
@IBAction func onLogOut(_ sender: Any) {
AuthHelper().signout()
performSegue(withIdentifier: "login", sender: nil)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return roomList.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellData = roomList[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
let imageView = cell?.viewWithTag(1) as! UIImageView
imageView.layer.cornerRadius = imageView.frame.size.width * 0.5
imageView.clipsToBounds = true
dataHelper.getImage(userID: cellData.userID, imageView: imageView)
let nameLabel = cell?.viewWithTag(2) as! UILabel
dataHelper.getUserName(userID: cellData.userID, result: {
name in
nameLabel.text = name
})
return cell!
}
}
コメント