質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1185閲覧

TableViewのヘッダーの上に、TableViewセルだけ一つ挿入したい。

退会済みユーザー

退会済みユーザー

総合スコア0

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/03/19 08:26

編集2018/03/19 14:42

いつもお世話になっています。

(ヘッダー)の上の位置に、太郎1などと同じようなセルを、
1つだけ乗せたいです。

そして、そのセル1つの上にはナビゲーションバー以外何も設定したくありません。
(ヘッダーやセルは設定したくありません。)

イメージ説明

画像の(ヘッダー)は、
太郎1〜ヘイホーまでのヘッダーで、これはこのまま使用したいです。

UITableViewController内で、ヘッダーの上の位置に乗せる、タップできるセルを別に1つ作る事は可能でしょうか?

(ヘッダー)をフッターの体で使用して、その上に太郎1と同じような、タップできるセルを1つだけ乗せるという方法になるのでしょうか?

画像にある ヘッダーとセルを構成するクラスと、上に乗せるためのセルのクラスを、
ある関数内にまとめてアンカーでレイアウトを作っては見たものの、上手く設定できませんでした。
この関数のインスタンスはviewDidLoad内に作ったのですが、シミュレータには反映されませんでした。

参考にしてるUIは、アプリ版のFacebookで、タブバー3番目 ハンバーガータブ内のレイアウト(プロフィールを見る)です。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「ヘッダー」と出力されている箇所をセクションヘッダーとして、その上にtableViewのtableHeaderViewを設定する方法だとイメージとは異なりますでしょうか?

ヘッダーを設定する参考記事:
https://qiita.com/nakamurau1@github/items/301b69522c32254617ad

【追記】

// viewDidLoadの中 // TableViewのヘッダーを設定 let headerView: UIView = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50)) headerView.backgroundColor = .red tableView.tableHeaderView = headerView let tap = UITapGestureRecognizer(target: self, action: #selector(tapped(_:))) headerView.addGestureRecognizer(tap)
// タップした時に呼び出されるアクション @objc func tapped(_ sender: Any) { print("tap") }
// セクションヘッダーの設定 // セクション数 func numberOfSections(in tableView: UITableView) -> Int { return 1 } // セクションヘッダーの高さ func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 50 } // セクションヘッダーのタイトル func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { return "ヘッダー" }

投稿2018/03/19 11:29

編集2018/03/19 21:24
newmt

総合スコア1277

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/19 14:43 編集

newmt様 こんばんは。参考記事ありがとうございます。 1番上に乗せるセルは、タップできるセルにしたいです、言葉足らずですみません。 画像にあるヘッダーはタップできない単純なテキストだけが乗るヘッダーのまま使いたく、 UITableViewHeaderFooterViewになっています。 このヘッダーの上に設置するセルはタップできるセルにしたく、 アプリ版のFacebookのタブバー3番目 ハンバーガータブ内の一番上のセル(プロフィールを見る)を参考にしています。 Facebookの(プロフィールを見る)はタップすると自分のプロフィールに遷移するボタンセルなのですが、tableHeaderViewをタップできるように実装するのは通常のセルよりも難しそうで、できればタップできる通常のセルを1番上に設定したいのです。
newmt

2018/03/19 21:27

UITapGestureRecognizerとは異なるイメージでしょうか?(一応イメージとして追記してみました。) 通常のセルですとindexPathの値で場合分けをしてセクションの高さ、数と行の数を調整すればできると思います。
退会済みユーザー

退会済みユーザー

2018/03/20 05:56 編集

newmt様 追記いただいた、 // viewDidLoadの中 と // タップした時に呼び出されるアクション のみ仰る方法で書いて見たところ、 無事理想のボタンセル状のヘッダーを実装できました。 それとですが、実は 質問にある 太郎1〜ヘイホーのセルと、質問後に作った別のセクションセルをnumberOfSectionsで返していました。 ですので、numberOfSections 仰る通りの return 1 とは返していませんが、 // セクションヘッダーの設定 は 一切書かないでも ボタンは動き実装できました。 数日分からなく困っていたので、勉強にもなり解決して助かりました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問