散歩しながら 〜〜アプリ開発〜〜

Mac mini 始めました [objective-c]

objective-c

実機かシュミレータか調べたい場合

ソースコード上でシュミレータか実機か調べたい場合、以下の記述で処理を分ける事ができます。 #if (TARGET_IPHONE_SIMULATOR) // シミュレータの場合 #else // 実機の場合 #endif また、以下のimportが必要です。 #import <TargetConditionals.h></targetconditionals.h>

ステータスバーの文字色

ステータスバーの文字色をアプリ全体で設定する方法 ①info.plistに「View controller-based status bar」を追加し、設定値をNOにする。 ②AppDelegate等に下記のコードを記載 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightCon…

UIScrollView(UITableView)に余白を設定する

以下の方法でUIScrollView(UITableView)に余白を設定する事ができます。 self.scrollView.contentInset = UIEdgeInsetsMake(10.0f, 20.0f, 30.0f, 40.0f); UIEdgeInsetsMakeの設定は左から(上・左・下・右)の順序になります。 ※使い道は色々、たまに価値が…

メソッドを遅延実行

メソッドを遅延実行する場合 ・呼び出し側 // 引数が1つのメソッドを遅延実行する NSNumber *num = [NSNumber numberWithInteger:10]; [self performSelector:@selector(hogehoge:) withObject:num afterDelay:10.0]; ・呼び出される側 - (void) hogehoge:(N…

スレッドを一時停止(スリープ)

さんぽです。。。 スレッドの処理を一定時間停止するには以下のメソッドを呼び出します。 // 1秒停止する場合 [NSThread sleepForTimeInterval:1.0f];

アイコンの光沢を無くすには(Xcode5)

Xcode5でアプリアイコンの光沢を無くす方法です。 デフォルトだとiOS6以下で勝手に光沢が付いてしまうようなのですが 制御する方法がXcode5から変わったようです。 Images.xcassetsで管理している場合、AppIconからアイコンを設定しますが 設定の際「iOS ic…

Info.plistファイルの値を取得するには

Info.plistファイルの値を取得するには、以下を記載します。 [[NSBundle mainBundle] objectForInfoDictionaryKey: @"Info.plistのキー"]; Info.plistキーは、以下の手順で確認することができます。 ①Info.plistファイルを開く ②右クリック ③「Show Raw Keys…

アプリのバージョンを設定/取得するには

アプリのバージョン情報をプロジェクトに設定するには Info.plistファイルのBundle versionに値を設定します Bundle versionは初期値「1.0」ですが任意の値に設定可能です また、値を取得する際は [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFB…

地図アプリを起動する方法

アプリ内から地図をアプリを起動する方法です。 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:URL]]; URLに何を入れるかで表示されるマップが変わります。 ・Google Map @"http://maps.google.com/mapsq=夢の国" ・Apple Map @"http://…

バックグラウンドでアプリを動かさない方法

アプリを表示しているときのみ動かしたい場合の設定方法です。 ①Info.plistに”Application does not run in background”という項目を追加します。 ②Valueに”YES”を設定します。 上記の設定で、アプリを表示する場合は必ず最初(AppDelegate)から処理が始ま…

デバッグのみ表示されるログを出すには

デバッグ時のみ表示されるログを作成する方法です。 よく使われる方法ですが、便利なのでメモ、、。 全体で読み込まれるファイルや「アプリ名-Prefix.pch」ファイルなどに以下のマクロを定義します。 // Debag Log#ifdef DEBUG#define DLog(fmt, ...) NSLog(…

実行スレッドを確認する方法

処理が行われているスレッドを確認したい場合、NSThreadクラスの以下のメソッドを実行する。 // メインスレッドで実行されているか if([NSThread isMainThread]){ NSLog(@"メインスレッド"); }else{ NSLog(@"サブスレッド"); } // スレッドの内容 NSLog(@"cu…

iPadでモーダルビューを表示する方法

さんぽです。。 iPadでモーダルビューを表示する場合、ちょっとだけiPhoneとは異なります。 UIViewController *vcModal = [[UIViewController alloc] init]; [vcModal setModalPresentationStyle:UIModalPresentationPageSheet]; [self presentViewControlle…

「Target Base SDK」と「Deployment Target」について

さんぽです。 プロジェクトに設定する 「Target Base SDK」と「Deployment Target」 についての考え方のまとめです。 ・Deployment Target アプリが使う一番低いSDKのVer ・Base SDK 自分のアプリが使う一番高いSDKのVer このVerより高いVerからある新らしい…

セルの選択を解除したいとき

セルが選択された場合に、選択を解除したいときの記述方法。 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // 選択状態の解除 [tableView deselectRowAtIndexPath:indexPath animated:YES]; }

viewに枠線をつけるには

viewに枠線を表示させるには、以下の設定を行います。 view.layer.borderColor = [UIColordarkGrayColor].CGColor; view.layer.borderWidth = 1.0f; 色と幅を指定するだけ、簡単です。。

Viewのはみ出しを制御したい

ViewにViewを貼付ける場合、親のViewをはみ出して表示されることがあります。 場合によってははみ出しを無くしたい事もある訳で・・・ そんな時の設定方法です。 view. clipsToBounds = YES; // デフォルトはNOで、はみ出した部分も表示されます。

文字列 ⇆ 数値 変換

文字列と数値を変換する場合の手順です。 文字列から数値は、文字列のメソッドを使用します。 NSString *str = @"12345"; NSInteger i = str.intValue; 数値から文字列の場合、NSStringのstringWithFormatを使用します。 int i = 12345; NSString *str1 = [N…

フィールド(特定不要)のフォーカスを解除する方法

さんぽです。。。。 特定のViewの配下にあるテキストフィールドのフォーカスを外す方法です。 [self.view endEditing: YES ]; どのTextFieldか特定しなくても使えるのが楽です。。

定数

定数を使用する場合は#defineではなく、constを使用する。 static NSString const *SAMPLE = @"SAMPLE"; #defineの場合、型宣言がされていないから、予期せぬエラーの可能性がある。 ※確率的には低いみたいですが・・・。 数値の場合enumが推奨されるようで…

NavigationController 遷移時のアニメーション

通常の画面遷移では、子画面が右から出てくるが 他にアニメーションを行いたい場合 以下の実装を入れる事で、簡単にアニメーションを変更することができる。 // アニメーション作成 CATransition* transition = [CATransitionanimation]; // アニメーション…

レイヤーの順序を変更するには

SubViewの順序を変更するには、以下のメソッドで実行する。 ◆最前面に移動 [self.view bringSubviewToFront:subView]; ◆最背面に移動させる [self.view sendSubviewToBack:subView];

FMDB 最後に登録したレコードのID

FMDBを使用してINSERTを行った際に、登録したレコードのidを取得したい場合には、以下のメソッドを使用します。 [self.db executeUpdate:SQL_INSERT, attr1, attr2]; if ([self.db hadError]) { NSLog(@"Err %d: %@", [self.db lastErrorCode], [self.db las…

defineマクロ まとめ

よく使う define の まとめ。 ログ出力 メソッド名、行数を出力します #define LOG(A, ...) NSLog(@"-----%s:%d:%@", __PRETTY_FUNCTION__,__LINE__,[NSString stringWithFormat:A, ## __VA_ARGS__]); 画面サイズ 取得 画面サイズを取得する際に便利 #define…

ボタン画像を引き延ばして奇麗に使いたい場合

ボタンなどの背景画像を引き延ばして奇麗に使いたい場合、以下のように行います。 UIImage *image = [UIImage imageNamed:@"buttn.png"]; UIImage *changeImage = [image stretchableImageWithLeftCapWidth:10 topCapHeight:10]; 2行目の処理が実際に引き延…

NSNumber・NSArray・NSDictionaryの省略した書き方

NSNumber・NSArray・NSDictionaryは下記のような省略した書き方が可能です。 NSNumber 数字:@10、@0.1、@0.1f 文字:@'a' bool :@(YES)、@NO NSArray @[@"aaa", @10, @(YES)] NSDictionary @{@"key1":@"aaa", @"key2":@10, @"key3":@(YES)}

【iOS7対応】ナビゲーションバーの下から表示するには

iOS7対応 ナビゲーションバーの下からViewを表示するには以下の記述をviewDidLoadに行います。 if (floor(NSFoundationVersionNumber) &gt; NSFoundationVersionNumber_iOS_6_1){ // ①下から表示 self.edgesForExtendedLayout = UIRectEdgeNone; // ②不透明…

ステータスバー削除する場合

アプリにステータスバーが要らない場合は、以下の手順でプロジェクトの設定を行います。 ①Xcodeの対象TargetのGeneraにある項目 「Deployment Info」ー「Status Bar Style」ー「Hide during application launch」 にチェックを入れます。 ②info.plistファイ…

Xcodeの旧バージョンをダウンロード

さんぽです。 Xcode5がダウンロード可能となりましたが、VerUP前に旧Verをダウンロードできるのか気になったため調べていました。 見逃していたのですが、普通にダウンロード可能なようです。 ・Apple Developer これでXcode4に戻せそうです。

iTunesConnect アプリ内課金 プロダクト作成 手順

さんぽです。 アプリ内課金を行う際の手順を記載していきます。 〇前提条件 ・アプリをiTunesConnectに登録 iTunesConnect アプリの登録方法 - 散歩しながら 〜〜アプリ開発〜〜 ・銀行口座の登録 iTunesConnect 銀行口座の登録 - 散歩しながら 〜〜アプリ開…