タグ付けされた質問 「cocoa-touch」

iOSアプリを駆動するCocoa Touch Frameworksは、Macに見られる多くの実績のあるパターンを共有しますが、タッチベースのインターフェースと最適化に特に重点を置いて構築されました。

4
UIToolBarアイテムの整列
UIBarButtonItem以下のように3つ作成しました。左揃えで、中央に揃えて、右側に隙間が無いようにしたいです。にalignプロパティが表示されませんUIToolBar。これを達成する別の方法はありますか? //create some buttons UIBarButtonItem *aboutButton = [[UIBarButtonItem alloc] initWithTitle:@"About" style:UIBarButtonItemStyleBordered target:self action:@selector(showAbout:)]; [toolbar setItems:[NSArray arrayWithObjects:settingsButton,deleteButton,aboutButton,nil]]; //Add the toolbar as a subview to the navigation controller. [self.navigationController.view addSubview:toolbar];


11
iOSアプリケーションのどこにグローバル定数を格納するのですか?
私のiOSアプリのほとんどのモデルはWebサーバーにクエリを送信します。サーバーのベースURLを格納する構成ファイルが欲しいのですが。次のようになります。 // production // static NSString* const baseUrl = "http://website.com/" // testing static NSString* const baseUrl = "http://192.168.0.123/" いずれかの行をコメント化することで、モデルが指すサーバーを即座に変更できます。私の質問は、iOSでグローバル定数を格納するためのベストプラクティスは何ですか?Androidプログラミングでは、この組み込みの文字列リソースファイルがあります。任意のアクティビティ(UIViewControllerに相当)では、次のようにしてこれらの文字列定数を取得できます。 String string = this.getString(R.string.someConstant); iOS SDKに定数を格納するための同様の場所があるかどうか疑問に思っていました。そうでない場合、Objective-Cでそれを行うためのベストプラクティスは何ですか?



12
iOSアプリケーション:通知をクリアする方法?
一部のプッシュ通知が送信されるiOSアプリケーションがあります。私の問題は、メッセージ/通知がタップされた後、iOSの通知センターにとどまることです。次回アプリケーションが開いたときに、通知センターでアプリケーションの通知を削除するにはどうすればよいですか? setApplicationIconBadgeNumber通知を消去するために人々がゼロ値を要求している投稿に出くわしました。それは私には非常に奇妙に思われるので、おそらく別の解決策が存在すると思いますか? 編集1: 通知の消去に問題があります。ここに私のコードを参照してください: - (void) clearNotifications { [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0]; [[UIApplication sharedApplication] cancelAllLocalNotifications]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if (launchOptions != nil) { NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; if (dictionary != nil) { NSLog(@"Launched from push notification: %@", dictionary); [self clearNotifications]; } } return YES; } …

9
コアデータで列挙型を実装する最良の方法
エンティティにタイププロパティを割り当てることができるように、コアデータエンティティを列挙値にバインドする最良の方法は何ですか?言い換えれば、私はと呼ばれるエンティティ持っているItemとitemType私は列挙型にバインドしたいというプロパティを、このついて行くの最善の方法は何ですか。


6
AVAudioPlayerがデバッグモードでブレークポイントをスローする
アプリをロードするたびに、この行にブレークポイントを設定したかのように停止します。 self.audioPlayer = [[[AVAudioPlayer alloc] initWithData:[dataPersister loadData:self.fileName] error:&outError] autorelease]; このラインの上または近くにブレークポイントはありません。これは、アプリをデバッグモードで実行したときにのみ発生し、ブレークポイントの後でクラッシュするものはありません。「プログラムの実行を続ける」をクリックしても何も起こらないのでアプリは動作します。 これは、次のように呼び出されるloadDataメソッドですinitWithData。 -(NSData*)loadData:(NSString*)fileName { NSString *dataPath = [self.path stringByAppendingPathComponent:fileName]; dataPath = [dataPath stringByStandardizingPath]; NSData *data = [[[NSData alloc] initWithContentsOfFile:dataPath]autorelease ]; return data; } loadData関数は正常に動作しているようです。要求されたmp3ファイルが読み込まれ、ブレークポイント後に問題なく再生されます。 私が間違っていることを何か知っていますか? 編集: ブレークポイントで停止したときにバックトレースを実行しました。これは出力でした: (lldb)bt *スレッド#1:tid = 0x1c03、0x30df1724 libc ++ abi.dylib`__cxa_throw、停止理由=ブレークポイント1.2 フレーム#0:0x30df1724 libc ++ abi.dylib`__cxa_throw フレーム#1:0x36403a24 AudioToolbox`ID3ParserHandle :: …

4
NSRunLoopについて
誰かが何について説明できますNSRunLoopか?私が知っNSRunLoopているように、何かが関連していNSThreadますか?だから私はのようなスレッドを作成すると仮定します NSThread* th=[[NSThread alloc] initWithTarget:self selector:@selector(someMethod) object:nil]; [th start]; -(void) someMethod { NSLog(@"operation"); } それで、このスレッドが彼の右の仕事を終えた後?なぜ使用するのRunLoopsか、どこで使用するのか?Apple docsから何か読んだことがありますが、はっきりしていませんので、できるだけ簡単に説明してください

15
UILabelにアウトラインテキストを表示させるにはどうすればよいですか?
私が欲しいのは、白いUILabelテキストの周りの1ピクセルの黒い境界線だけです。 私は以下のコードでUILabelをサブクラス化するところまで行きました。そして、それは機能しますが、非常に遅く(シミュレータを除いて)、テキストを垂直方向に中央揃えすることもできませんでした(そのため、最後の行のy値を一時的にハードコードしました)。ああ! void ShowStringCentered(CGContextRef gc, float x, float y, const char *str) { CGContextSetTextDrawingMode(gc, kCGTextInvisible); CGContextShowTextAtPoint(gc, 0, 0, str, strlen(str)); CGPoint pt = CGContextGetTextPosition(gc); CGContextSetTextDrawingMode(gc, kCGTextFillStroke); CGContextShowTextAtPoint(gc, x - pt.x / 2, y, str, strlen(str)); } - (void)drawRect:(CGRect)rect{ CGContextRef theContext = UIGraphicsGetCurrentContext(); CGRect viewBounds = self.bounds; CGContextTranslateCTM(theContext, 0, viewBounds.size.height); CGContextScaleCTM(theContext, …

23
キーボードが表示されたときにUIScrollViewをスクロールするにはどうすればよいですか?
コードに問題があります。私は移動しようとしていますUIScrollViewUITextFieldキーボードポップで非表示にする必要があるを編集しているときにます。 コードで「上にスクロール」する方法がわからないので、今はメインフレームを移動しています。だから、私は少しコードを書きました、それはうまくいきますが、UItextfieldを編集して別のものに切り替えるときUITextFieldし、「戻る」ボタンを押さず、メインビューがずっと上に移動します。 NSLog()以下に示すように、サイズ、距離、およびtextFieldRect.origin.y変数を使用しました。2つUITextFieldを同じ場所(y原点)に配置し、この特定の「スイッチ」(returnキーを押さない)を実行すると、同じ番号が返されますが、コードは最初のUITextField編集では正常に機能しましたが、2番目の編集では機能しませんでした。 これをチェックしてください: - (void)textFieldDidBeginEditing:(UITextField *)textField { { int size; CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField]; size = textFieldRect.origin.y + textFieldRect.size.height; if (change == FALSE) { size = size - distance; } if (size < PORTRAIT_KEYBOARD_HEIGHT) { distance = 0; } else if (size > PORTRAIT_KEYBOARD_HEIGHT) { distance = …

3
キーストロークが入力されたときにUITextFieldの値を取得しますか?
次のコードがあるとします。 IBOutlet UITextField* nameTextField; IBOutlet UILabel* greetingLabel; greetingLabelユーザーが任意のキーを押したらすぐに、「Hello [nameTextField]」を読みたいと思います。 基本的に必要なのは、Cocoaデリゲートメソッドに相当するiPhone controlTextDidChangeです。 textField:shouldChangeCharactersInRange:デリゲートメソッドは、キーストロークが発生するたびに呼び出されます。 - (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 文字列引数は、押された文字を返します。ただし、実際textFieldの値(nameTextField.text)は空白のままです。 ここで何が欠けていますか?(nameTextFieldユーザーがこれまでに入力した正確な文字列を反映したいと思います)。

6
「fat」Cocoa Touch Framework(シミュレーターおよびデバイス用)をエクスポートする方法
Xcode 6では、独自のDynamicを作成することができますCocoa Frameworks。 のため: シミュレータはまだ32-bitライブラリを使用しています 2015年6月1日以降、App Storeに送信されるアプリの更新には64ビットのサポートが含まれ、iOS 8 SDK(developer.apple.com)でビルドされている必要があります デバイスとシミュレータでプロジェクトを実行するには、ファットライブラリを作成する必要があります。つまり、フレームワークで32ビットと64ビットの両方をサポートします。 しかし、他のプロジェクトとの将来の統合のためにUniversal Fat Framework をエクスポートする方法(およびこのライブラリを誰かと共有する方法)のマニュアルは見つかりませんでした。 これが私の再現手順です: 設定するONLY_ACTIVE_ARCH=NOにはBuild Settings (確かに)サポートarmv7 armv7s arm64 i386 x86_64を追加するArchitectures フレームワークをビルドし、Finderで開きます。 このフレームワークを別のプロジェクトに追加する 実結果: しかし、結局のところ、このフレームワークを使用してプロジェクトをデバイスとシミュレーターで同時に実行することにまだ問題があります。 フレームワークをDebug-iphoneosフォルダーから取得した場合-デバイスで動作し、シミュレーターでエラーが発生します。ld: symbol(s) not found for architecture i386 xcrun lipo -info CoreActionSheetPicker ファットファイル内のアーキテクチャ:CoreActionSheetPickerは次のとおりです:armv7 armv7s arm64 Debug-iphonesimulatorフォルダからフレームワークを取得すると、シミュレータで機能します。デバイスにエラーがあります:ld: symbol(s) not found for architecture arm64 xcrun lipo -info …


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.