[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
テーブルのセルへの参照を2種類以上混在させる
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"Cell"]autorelease];
}
PositionTableViewCell *pCell = (PositionTableViewCell *)[tableView
dequeueReusableCellWithIdentifier:@"PositionTableViewCell"];
if (pCell == nil) {
pCell = [[[PositionTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"PositionTableViewCell"] autorelease];
}
SwitchTableViewCell *sCell = (SwitchTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"SwitchTableViewCell"];
if (sCell == nil) {
sCell = [[[SwitchTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"SwitchTableViewCell"] autorelease];
}
switch (indexPath.row) {
case 0: {
sCell.selectionStyle = UITableViewCellSelectionStyleNone;
sCell.myDictionary = self.myDictionary;
sCell.editedKey = @"display";
[sCell.switchCtl setOn:[[myDictionary objectForKey:@"display"] boolValue]
animated:NO];
sCell.nomalLabel.text = NSLocalizedString(@"Display",@"");
return sCell;
break;
}
case 1: {
cell.font = [UIFont systemFontOfSize:20];
cell.text = [NSString stringWithFormat:NSLocalizedString(@"Name:
%@", @""),[myDictionary objectForKey:@"name"]];
return cell;
break;
}
case 2: {
pCell.enabledSetting = YES;
pCell.titleLabel.text = NSLocalizedString(@"Center",@"");
pCell.leftTitleLabel.text = @"X";
pCell.leftValueLabel.text = [NSString stringWithFormat:@"%f",
[[myDictionary objectForKey:@"centerx"]floatValue]];
pCell.centerTitleLabel.text = @"Y";
pCell.centerValueLabel.text = [NSString stringWithFormat:@"%f",
[[myDictionary objectForKey:@"centery"] floatValue]];
pCell.rightTitleLabel.text = @"Z";
pCell.rightValueLabel.text = [NSString stringWithFormat:@"%f",
[[myDictionary objectForKey:@"centerz"] floatValue]];
return pCell;
break;
}
case 3: {
pCell.enabledSetting = YES;
pCell.titleLabel.text = NSLocalizedString(@"Rotate",@"");
pCell.leftTitleLabel.text = @"X";
pCell.leftValueLabel.text = [NSString stringWithFormat:@"%f",
[[myDictionary objectForKey:@"rotatex"] floatValue]];
pCell.centerTitleLabel.text = @"Y";
pCell.centerValueLabel.text = [NSString stringWithFormat:@"%f",
[[myDictionary objectForKey:@"rotatey"] floatValue]];
pCell.rightTitleLabel.text = @"Z";
pCell.rightValueLabel.text = [NSString stringWithFormat:@"%f",
[[myDictionary objectForKey:@"rotatez"] floatValue]];
return pCell;
break;
}
case 4: {
cell.font = [UIFont systemFontOfSize:20];
if ([myDictionary objectForKey:@"magnification"] == nil) {
[myDictionary setObject:[NSNumber numberWithFloat:1]
forKey:@"magnification"];
}
cell.text = [NSString stringWithFormat: NSLocalizedString (
@"Magnification: %f",@""),[[myDictionary objectForKey:
@"magnification"]floatValue]];
return cell;
break;
}
}
return cell;
}
出張所開設
FTPを利用したMacへのオブジェクトファイル転送
Mac側の準備
- システム環境設定を開きます。
- インターネットとネットワークの共有を開きます。
- ファイル共有にチェックを入れます。
- ユーザ項目で読み/書きが可能なユーザを把握しておきます。
- 右下のオプション...をクリックします。
- FTPを使用してファイルやフォルダを共有にチェックを入れます。
- 項目に書いてあるftpアドレスをメモしておきます。
Tiny3D側の操作
バックアップを取る場合(swf形式のビデオ再生が可能な場合はビデオガイドも参照してください。)
- タブバーのツールをタップします。
- アップロードのFTPをタップします。
- FTPディレクトリに先ほどメモしたftpアドレスを書きます。ftp://の部分は不要です。(例:192.168.0.20/)
- ファイル名の下の>マークのボタンをタップして、転送したいオブジェクトを選択します。
- アクセス用ユーザー名はMac側4.で確認したユーザを入力します。
- アップロードをタップします。
- 先ほどのユーザに対応するパスワードを入力します。
- アップロードが無事に終わると確認の表示がでるので、OKをタップします。
バックアップを取り込む場合(swf形式のビデオ再生が可能な場合はビデオガイドも参照してください)
- タブバーのツールをタップします。
- ダウンロードのFTPをタップします。
- FTPディレクトリに先ほどメモしたftpアドレスを書きます。ftp://の部分は不要です。(例:192.168.0.20/)
- ファイル名を入力します。拡張子(.t3d)は省略して構いません。
- アクセス用ユーザー名はMac側4.で確認したユーザを入力します。
- ダウンロードをタップします。
- 先ほどのユーザに対応するパスワードを入力します。
- ダウンロードが無事に終わると、確認の表示が出るので、OKをタップします。
これらの操作でMac側のホームとの間でTiny3Dのオブジェクトファイルがやり取りできます。Mac側に既に同じファイル名のファイルが存在する場合、アップロードにより上書きされます。Tiny3Dのオブジェクトリストにあるものと同一名のファイルをダウンロードした場合は上書きはされず、こちらの場合は新しくオブジェクトが追加されます。なお、マクロのリンクは自動的に解除されますのでご注意ください。
編集モード中もセルの選択を可能にする方法
それはInterfaceBuilderのAttributes InspecterのTable Viewの項目にある、Allow Selection While Editingにチェックを入れることでした。灯台もと暗しとはまさにこの事ですね。
これで編集モード中にセルをタップするとdidSelectRowAtIndexPathがメッセージを受信するようになりますので、self.editingのBOOL値で分岐させれば通常モードと別の動きをさせることができます。この発見のおかげで、Tiny3Dのバージョン1.2.0以降では、いちいち編集画面を開かなくてもオブジェクトの表示・非表示の切り替えができるようになりました。(まだ他にも手を加えているのでアップまでにはしばらく時間がかかります。ユーザーの皆様、気長にお待ちください。)他にも気づいていない設定がいろいろありそうです(汗)。
Kigen 1.6.0 アップしました
- List Viewでも期限/個数の編集や削除が可能になりました。また、List Viewでは通常モードからでもアイテムの横方向スワイプで削除ボタンが出せるようになりました。
- Edit ViewとList Viewに表示内容ガイドを追加しました。
- アイテムリストで個数が0のアイテムを赤色表示するようにしました。
- ヘルプで上下へのページ移動が出来るようになりました。
Kigen Lite 1.6.0 アップしました
- List Viewでも期限/個数の編集や削除が可能になりました。また、List Viewでは通常モードからでもアイテムの横方向スワイプで削除ボタンが出せるようになりました。
- Edit ViewとList Viewに表示内容ガイドを追加しました。
- アイテムリストで個数が0のアイテムを赤色表示するようにしました。
- ヘルプで上下へのページ移動が出来るようになりました。
Tiny3D 1.1.0 リリースしました
バージョンアップについて
主な変更は位置および色設定マクロの全削除機能の追加です。
また、ヘルプファイルを含めたバージョンアップ版1.2.0を準備しています。
こちらでは円柱を塗りスイッチオフで描画した時に見られるバグも修正します。