見出し画像

Swift -セルに画像とテキストを入れて、表示する方法-

はじめに

今回はTableViewについて学習したので、忘れないようにこの記事に纏めてみました。                              Swiftを学習し始めたけどまだTableViewの使い方が分からない人や、Swift初学者でTableViewの使い方を忘れた人に参考になれば幸いです。

使用環境

● OS:macOS Big Sur 11.3.1
● Xcode:12.5
● Swift:5.4

実装手順:Navigation Controller設定

1.Main.storyboardにNavigation Controllerを追加し、画面のタイトルを設定を行う

①左のフォイルメニューからMain.storyboardに移ります。

スクリーンショット 2021-05-30 17.17.52

②XcodeのメニューバーからEditer > Embed in > Navigation Controllerの順に選択する。

スクリーンショット 2021-05-30 17.22.31

③Navigation ControllerのNavigation Barを選択し、Prefers Large Titlesにチェックを入れる。

スクリーンショット 2021-05-30 17.32.13

実装手順:UIパーツ実装

2.View ControllerにUIパーツを追加

完成イメージ

スクリーンショット 2021-05-30 18.15.35

①+を選択しViewControllerにTableViewを追加する。

スクリーンショット 2021-05-30 17.40.56

②TableViewを追加した様にTableViewCell > View > Label > Imageの順に追加する。

実装手順:コード実装

3.Cocoa Touch ClassでCustomUserCellを作成

①⌘ + Nで新規ファイルでCocoa Touch Classを選択する。

スクリーンショット 2021-05-30 18.03.50

②新規ファイルCocoa Touch ClassCustomUserCellと入力し作成する。

スクリーンショット 2021-05-30 17.57.02

CustomUserCellにUIパーツの紐付けを行う。

import UIKit

class CustomUserCellUITableViewCell {
   @IBOutlet weak var UserViewUIView!
   @IBOutlet weak var UserImageUIImageView!
   @IBOutlet weak var UserNameLblUILabel!
   
   override func awakeFromNib() {
       super.awakeFromNib()
   }

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

4.View Controllerにコードを記述

import UIKit

class ViewControllerUIViewController {
   @IBOutlet weak var UserTableUITableView!
   
   let UserArray = ["正人""慎二""舞香"]
   
   override func viewDidLoad() {
       super.viewDidLoad()
       UserTable.delegate = self
       UserTable.dataSource = self
   }
}

extension ViewControllerUITableViewDelegateUITableViewDataSource {
   func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
       return 125
   }
   
   func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
       /*
       let targetViewController = self.storyboard!.instantiateViewController(withIdentifier: "categorySelect")
           self.present(targetViewController, animated: true, completion: nil)
       */
       //performSegue(withIdentifier: "toNextViewController", sender: nil)
   }
   
   func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
       return UserArray.count
   }
   
   func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
       let cell = UserTable.dequeueReusableCell(withIdentifier: "customCell"asCustomUserCell
       let Users = UserArray[indexPath.row]
       cell.UserImage.image = UIImage(named: Users)
       cell.UserNameLbl.text = Users
       
       return cell
       }
   }

おわりに

最後まで読んで下さった方やそうで無い方もこの記事を読んで頂き有難うございます。
また投稿する機会があると思うので、今後も宜しくお願いします。

この記事が気に入ったらサポートをしてみませんか?