Hatena::ブログ(Diary)

いけしょーのコソアド:コレもソレもアレもドレも RSSフィード Twitter

2011-10-04

MacにPythonとSphinx, blockdiagをセットアップ

HomebrewPython(とPIL)をインストールMacデフォルトと環境を分ける)

brew install python pil

.zshrc (.bashrc) に下記を追加

export PATH=/usr/local/share/python:$PATH

Pythonインストールを確認

which python && python -V
 > /usr/local/bin/python
 > Python 2.7.3

Sphinx と blockdiag をインストール

pip install Sphinx blockdiag sphinxcontrib-blockdiag

Sphinxでプロジェクトを作成

mkdir ~/sphinx-test && cd ~/sphinx-test
sphinx-quickstart

ウィザードが完了したら、

make html && open build/index.html

参考リンク

2011-01-22

dodaiiのカスタマーAPIの顧客IDに関して

iOSアプリアプリ内課金(In App Purchase)対応ASPであるdodaii。

顧客情報取得APIに対して、顧客IDの初期化を-1とかでしてたら、ID取得に失敗した場合に困ったことになったお話。

顧客IDが負の値、もしくは2147483647(=LONG_MAX)より大きい数字になると、全件取得になるのか、もしくは1件目のみ出力される模様(1件しかまだ顧客登録してないので詳細不明)。

ということで初期化を0でして、顧客情報のget or post時にidが0でないかチェックしてからAPIを叩くように修正しました。

2011-01-15

UITableViewCellのカスタムセルでUILabelの複数行表示をうまいことする

メモエントリ。

複数行表示したいUILabelを置いたカスタムセルを作って、UILabelの高さ調整とセルの高さ調整をうまいことまとめる方法。

// MyTableViewController.m
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
	NSString *text = @"cell text"; // indexPathから該当セル用のデータをよしなに。
	
	CGFloat cellHeight = 83; // カスタムセルのデフォルトのheight
	CGFloat textHeight = 22; // カスタムセル内の複数行表示したいラベルのデフォルトのheight
	
	UIFont *font = [UIFont fontWithName:@"Helvetica-Bold" size:18]; // IBで設定したのと同じに。
	CGSize size = CGSizeMake(292, 4000); // カスタムセル内のラベルのwidth。heightは適当に。
	CGSize textSize = [text sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeCharacterWrap]; // IBで設定したのと同じlineBreakModeにする。
	
	cellHeight += (textSize.height - textHeight);
	
	return cellHeight;
}
// MyCustomCell.m
- (void)layoutSubviews {
	[super layoutSubviews];

	〜〜レイアウトコード

	// ラベルはnumberOfLines = 0, lineBreakModeにはCharacterWrapかWordWrap
	CGRect frame = [label frame];
	frame.size = CGSizeMake(292, 0); // ラベルのwidthを都度指定。セルは再利用されるので、テキストが短い状態でフィットされるとその後が困ったことになるため。
	[label setFrame:frame];
	[label sizeToFit];

	〜〜レイアウトコード
}

あとはIBでAutosizingを調整。

対象のラベルより下にUIパーツがある場合は、それらのボトムマージンを固定にし、ラベルのボトムマージンは固定しない。

カスタムセルはこのあたりを。

http://d.hatena.ne.jp/KishikawaKatsumi/20081024/1224857278