こんにちは!
週末のお出かけが楽しみなちょこひです。
家族の夏の旅行といえば、ざっくり分けて
山で避暑派と、海で暑さをエンジョイ派とあると思いますが、
我が家はがっつり避暑でした。暑がり家族。
長野県は安曇野にお蕎麦を食べに行きたい!と父に伝えたところ
週末連れて行ってくれるようで。今から楽しみです。
わさび菜の天ぷら本当に美味しいんですよ・・・
このテーマを選んだ理由
と、いうわけで
おいしいお蕎麦によだれを垂らしながら今回も書いていきます。
私のクラスは、今日Swiftの課題提出日でして。
今がっつり授業中ですが(先生ごめんなさい)一通り終わってるので余裕ぶっこいてます。
昨日の残業中、クラスメートに
「TableViewの背景をこの画像にしたいんだけど・・・」と 相談されまして。
ちょこひ「それならTableViewのbackgroundに画像設定してrowItemのbackgroundをalphaにFFいれt 」
ちょこひ「・・・・・」
ちょこひ「Androidの話じゃんこれ。Swiftなら〜(storyboardみる)」
ちょこひ「(やべえbackgroundにimage設定できなさそう)」
友達「storyboardで imageView後ろに入れたいんだけど入れられなくてさ〜」
ちょこひ「じゃあソースコードで無理くりいれてみるか」
という背景があり。
無事設定できたので、またまた覚書として。
やってみる
手順としては、
①ソースコードでimageViewを作成
②imageViewにimageを設定
③tableViewのbackgroundViewにimageViewを設定
・まずはシンプルなTableViewControllerをつくる
見栄えのためにまったく意味をなさないNavigationViewControllerをEmbed inしてます
実機はこんな感じ。
ひたすらに眠い文字列たちは
ソースコード内で用意した配列を使用しています。
import UIKit class TableViewController: UITableViewController { let array = ["眠い", "ほんと眠い", "とてつもなく眠い", "尋常じゃなく眠い", "寝ながら寝るくらい眠い"] override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 }cellのidentifier設定をお忘れなく(わたしは忘れてました)
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return array.count } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) cell.textLabel!.text = array[indexPath.row] return cell } }
・ソースコードでimageViewを生成
今回背景に選んだフリー素材は
こちら。黒くてかっこいい!
みなさんプログラミングするときの背景色にこだわりはありますか?
TwitterClientのときも少し話しましたが、私は断然黒背景派です。
白かったり明るかったりすると目が痛くなってしまう。
この画像を「black.png」として
プロジェクトにぶっこんでます。
// tableViewController.swift
override func viewDidLoad() { super.viewDidLoad() let image = UIImage(named: "black.png") let imageView = UIImageView(frame: CGRectMake(0, 0, self.tableView.frame.width, self.tableView.frame.height)) imageView.image = image self.tableView.backgroundView = imageView }
UIImageと用意した画像を紐付けて
tableViewのサイズのUIImabeViewをつくり
UIImageViewにUIImageをぶっこんで
それをtableViewの背景にぶっこんでいます。
こうしてみると全然難しくない。
むしろ簡単。
この時点で実機は
こうなります。
アレ?
犯人はcell
tableViewの背景は無事に反映されています。
なぜ行があるところが白くなってしまうのか?
理由は簡単で、
cellにも背景があるからです。
そしてdefaultは白。
背景画像の上に白いcellが乗っかってる感じです。
・cellのbackgroundを変更
storyboardからcellのbackgroundをclearcolorに設定。
よっしゃこれででk・・・
なんもみえねえ。
・cellの文字色を変更
// tableViewController.swift
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) cell.textLabel!.text = array[indexPath.row] cell.textLabel?.textColor = UIColor.whiteColor() return cell }
今回は白に設定。
できたー!.。゚+.(・∀・)゚+.゚
かっこよろしい!
スタイリッシュ!
まとめ
普段storyboardを使ってレイアウト等は決めているので、
ソースコードでViewを生成するのに少し手間取りました。
あれ?これでいいよな?あれ?ってなった。
tableViewの背景画像を入れている状態ってなかなかみないけど
これはこれでかっこいいですね!
ねむい。お蕎麦食べたい。
ちょこひ