iPhoneアプリのユーザインタフェースの作りこみ

ユーザを迷わせないためには、できれだけ使い慣れた既存のアプリに合わせる。そこで目を付けたのがメールソフトです。

編集を押して

ポチっと
一覧から選択させるのに、いいじゃないですか。
が、しかーし。標準の部品にこれないじゃん;;でもめげません、なければ作ればいいんじゃん。
画像をサクっと作ります。
未チェック状態

チェック状態

画像ファイルはこちら(自由にお使いください)
http://www.eonet.ne.jp/~einstein/iOS/design/checkbox.zip


チェックボックスクラスは、ここを参考に
http://stackoverflow.com/questions/1171476/checkbox-image-toggle-in-uitableviewcell
こんな感じに作成しました。基本的な形はこれで
UITabelViewに乗せるときには

  • 親のUITableViewCellがタッチされた時にチェックボックスをOnにする。
  • UITableViewCellが再利用されることを想定して、オンとオフの状態を外から操作できる。

など必要です。

#import <Foundation/Foundation.h>


@interface ToggleImageControl : UIControl
{
	BOOL selected;
	UIImageView* imageView;
	UIImage* normalImage;
	UIImage* selectedImage;
}
- (void)toggleImage;

@end
#import "ToggleImageControl.h"

@implementation ToggleImageControl
- (id)initWithFrame:(CGRect)frame {
	if (self = [super initWithFrame:frame]) {
		selected = false;
		normalImage = [UIImage imageNamed: @"normal.png"];
		selectedImage = [UIImage imageNamed: @"selected.png"];
		imageView = [[UIImageView alloc] initWithImage: normalImage];

		// set imageView frame
		[self addSubview:imageView];
	}
	return self;
}

- (void)toggleImage
{
	selected = !selected;
	imageView.image = (selected ? selectedImage : normalImage);
}

- (void)dealloc {
	NSLog(@"ToggleImageControl dealloc");
	[imageView release];
	[normalImage release];
	[selectedImage release];

	[super dealloc];
}

@end