Hatena::Groupiphone-dev

Ni chicha, ni limona - 平均から抜けられない僕

2009-07-14

[iPhone] UITableViewのスクロールバーを任意の画像に差し替える方法 01:51  [iPhone] UITableViewのスクロールバーを任意の画像に差し替える方法 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  [iPhone] UITableViewのスクロールバーを任意の画像に差し替える方法 - Ni chicha, ni limona - 平均から抜けられない僕  [iPhone] UITableViewのスクロールバーを任意の画像に差し替える方法 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

※注意※

今回の記事は未申請の方法ですので、ひょっとすると審査に通らなくなるかもしれません。戻すのは簡単ですのでリスクは少ないですが、ご利用は計画的にお願いします。(@cqa02303さん、ご指摘ありがとうございました)


UITableViewをスクロールさせると、画面の右側にスクロールバーが表示されます。この画像を変更する方法が分かりました。


UITableViewは幾つかのSubviewを持っていて、そのうちの1つがスクロールバーを表すUIImageViewですので、そのイメージを差し替えるだけです。

	for (UIView *view in [self.tableView subviews]) {
		if ([view class] == [UIImageView class]) {
			UIImageView *v = (UIImageView *)view;
			v.image = [UIImage imageNamed:@"scrollbar.png"];
		}
	}

こうすることで、たとえば下の画像のようにスクロールバーの見た目を変更できます。


    f:id:paella:20090715013937p:image:medium


使いどころが難しいとは思いますが、自分のUIに統一性を持たせたい時に活用すると良いのではないかと。


どうやってこのビューを見つけたか

ちなみにこのビューをどうやって見つけたかを記しておきます。


・・・とはいっても簡単で、tableViewは複数のサブビューを持っているという話をエリカ本で読んだので、subviewsメソッドで1つ1つを取り出し、そのクラス名を出力しただけです。


そのときのソースコードは以下のとおり。

	for (UIView *view in [self.tableView subviews]) {
		NSLog(@"Class name is %@", [[view class] description]);
	}

これを実行させると、

XXXX Class name is UITableViewCell

XXXX Class name is UITableViewCell

XXXX Class name is UITableViewCell

XXXX Class name is UITableViewCell

XXXX Class name is UITableViewCell

XXXX Class name is UITableViewCell

XXXX Class name is UITableViewCell

XXXX Class name is UITableViewCell

XXXX Class name is UITableViewCell

XXXX Class name is UIImageView ← コレ!!

という出力が得られます。

そして「最後のは何?」ということで取りあえず画像を突っ込んでみたら分かった、という流れです。


ご参考まで。

参考にした本

以下のAmazonインスタントストアで紹介した本を参考にしました。特にエリカ本と、iPhoneアプリケーションプログラミングの2冊は今回お世話になリました。


 「中級者にオススメだと言えるiPhoneプログラミング の関連図書Amazonストアへのリンク)」

BabyLarsBabyLars2012/02/06 08:30Ah, i see. Well that's not too trkicy at all!"

nokghmmfcjunokghmmfcju2012/02/07 18:31q59JOD <a href="http://ozrvtootmlvk.com/">ozrvtootmlvk</a>

druadyukndruadyukn2012/02/09 20:42oY5RLX , [url=http://gaswkylvmrom.com/]gaswkylvmrom[/url], [link=http://ydyhbqoivamv.com/]ydyhbqoivamv[/link], http://tgmbyruogedd.com/

zwrtghbnzwrtghbn2012/02/11 01:03xWg1dJ <a href="http://vynxoammiroy.com/">vynxoammiroy</a>

xohryvzkxohryvzk2012/02/12 02:04XXT06w , [url=http://jccgnynoddwm.com/]jccgnynoddwm[/url], [link=http://kznpulcczjyp.com/]kznpulcczjyp[/link], http://uaqadpjfesdd.com/