タグ付けされた質問 「ios」

iOSは、Apple iPhone、iPod touch、iPadで実行されるモバイルオペレーティングシステムです。iOSプラットフォームでのプログラミングに関する質問には、このタグ[ios]を使用してください。これらのプログラミング言語に固有の問題には、関連タグ[objective-c]および[swift]を使用してください。

6
iOSでカメラの許可を検出する
私は非常にシンプルなビデオアプリを開発しています。私は公式のコントロールUIImagePickerControllerを使用しています。 ここに問題があります。初めてUIImagePickerControllerを提示するとき、iOSは許可を求めます。ユーザーは「はい」または「いいえ」をクリックできます。ユーザーが[いいえ]をクリックした場合、コントロールは閉じられません。代わりに、ユーザーが開始ボタンをクリックし続けると、画面が常に真っ黒な状態のときにタイマーが作動し、ユーザーはタイマーを停止したり戻ったりすることはできません。ユーザーができる唯一のことは、アプリを強制終了することです。次回UIImagePickerControllerが表示されたとき、それはまだ黒い画面であり、ユーザーが[開始]をクリックすると戻ることができません。 バグかと思っていました。カメラの許可を検出して、UIImagePickerControllerを表示するかどうかを決定できる方法はありますか?

15
アニメーションの完了後、CABasicAnimationが初期値にリセットされます
アニメーションが完了した後、CALayerを回転させて、最終位置で停止しようとしています。 ただし、アニメーションが完了すると、初期位置にリセットされます。 (xcodeドキュメントは、アニメーションがプロパティの値を更新しないことを明示的に言っています。) これを達成する方法の提案。

7
UICollectionViewのUIRefreshControlは、コレクションがコンテナーの高さを満たす場合にのみ機能します
私が追加しようとしているUIRefreshControlのUICollectionViewが、問題がコレクションビューは、親コンテナの高さをいっぱいにしない限り、リフレッシュ制御が表示されないということです。言い換えると、コレクションビューがスクロールを必要とするほど長い場合を除いて、コレクションコントロールをプルダウンして更新コントロールビューを表示することはできません。コレクションが親コンテナの高さを超えるとすぐに、コレクションがプルダウンされ、更新ビューが表示されます。 私はUICollectionView、メインビューの内側にコレクションビューへのアウトレットを備えた簡単なiOSプロジェクトを設定しました。UIRefreshControlこれにより、に追加できviewDidLoadます。再利用識別子を持つプロトタイプセルもあります。cCell これはコントローラー内のすべてのコードであり、問​​題をかなりよく示しています。このコードでは、セルの高さを100に設定しました。これは、表示を埋めるには不十分であるため、ビューをプルできず、更新コントロールが表示されません。ディスプレイを埋めるためにそれをより高い値に設定すると、機能します。何か案は? @interface ViewController () <UICollectionViewDelegateFlowLayout, UICollectionViewDataSource> @property (strong, nonatomic) IBOutlet UICollectionView *collectionView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; [self.collectionView addSubview:refreshControl]; } -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return 1; } -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { …

8
iPhone UIViewアニメーションのベストプラクティス
iPhoneでビューの遷移をアニメーション化するためのベストプラクティスとは何ですか? たとえばViewTransitions、アップルのサンプルプロジェクトでは次のようなコードを使用しています。 CATransition *applicationLoadViewIn = [CATransition animation]; [applicationLoadViewIn setDuration:1]; [applicationLoadViewIn setType:kCATransitionReveal]; [applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; [[myview layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal]; しかし、次のようなコードスニペットがネット上に浮かんでいます。 [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.75]; [UIView setAnimationDelegate:self]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES]; [myview removeFromSuperview]; [UIView commitAnimations]; 最善のアプローチは何ですか?スニペットも提供していただければ幸いです。 注: 2番目のアプローチを正しく機能させることができませんでした。

6
ナビゲーションコントローラースタック、サブビュー、モーダルコントローラーを使用せずにビューコントローラーの変化をアニメーション化しますか?
NavigationControllerには、管理するViewControllerスタックがあり、アニメーションの遷移が制限されています。 既存のビューコントローラーにビューコントローラーをサブビューとして追加するには、イベントをサブビューコントローラーに渡す必要があります。これは、管理が面倒であり、煩わしさがほとんどなく、実装時に一般に悪いハックのように感じられます(Appleはまた、これを行う)。 モーダルビューコントローラーを再び表示すると、ビューコントローラーが別のビューコントローラーの上に配置され、上記のイベントパッシングの問題はありませんが、ビューコントローラーを実際に「スワップ」するのではなく、スタックします。 ストーリーボードはiOS 5に限定されており、ほぼ理想的ですが、すべてのプロジェクトで使用できるわけではありません。 誰かが上記の制限なしにView Controllerを変更する方法についてソリッドコード例を提示し、それらの間のアニメーション化された遷移を可能にすることができますか? 近い例ですが、アニメーションはありません: ナビゲーションコントローラーなしで複数のiOSカスタムビューコントローラーを使用する方法 編集:ナビゲーションコントローラーの使用は問題ありませんが、アニメーション化されたトランジションスタイル(単なるスライドエフェクトではない)が必要です。表示されているビューコントローラーは完全に(スタックではなく)交換する必要があります。2番目のビューコントローラーがスタックから別のビューコントローラーを削除する必要がある場合、十分にカプセル化されていません。 編集2:iOS 4がこの質問のベースOSである必要があります。ストーリーボード(上記)について言及するときは、それを明確にすべきでした。

4
自動レイアウトですべてのサブビューに合うようにスーパービューのサイズを変更する方法は?
autolayoutについての私の理解は、それがスーパービューのサイズと制約に基づくサイズとサブビューの位置を計算する固有のサイズを取ることです。 このプロセスを逆にする方法はありますか?制約と固有のサイズに基づいてスーパービューのサイズを変更したい。これを達成する最も簡単な方法は何ですか? Xcodeで設計されたビューがあり、これをのヘッダーとして使用していUITableViewます。このビューには、ラベルとボタンが含まれています。ラベルのサイズはデータによって異なります。制約に応じて、ラベルはボタンを正常に押し下げます。または、ボタンとスーパービューの下部の間に制約がある場合、ラベルは圧縮されます。 同様の質問をいくつか見つけましたが、良い簡単な答えはありません。

4
drawRectを描画するかどうか(drawRect / Core Graphics vs subviews / imagesを使用する必要があるのはなぜですか?)
この質問の目的を明確にするために:サブビューとdrawRectの両方を使用して複雑なビューを作成する方法を知っています。私はいつ、なぜ、どちらを使用するのかを完全に理解しようとしています。 また、事前に最適化することはあまり意味がなく、プロファイリングを実行する前に、より困難な方法を実行することも理解しています。私は両方の方法に慣れていると考えて、今は本当にもっと深く理解したいと思っています。 私の混乱の多くは、テーブルビューのスクロールパフォーマンスを本当にスムーズかつ高速にする方法を学ぶことから生じます。もちろん、このメソッドの元のソースは、iPhoneのTwitter(以前のTweetie)の作成者によるものです。基本的に、表のスクロールをスムーズにするための秘訣は、サブビューを使用せず、すべての描画を1つのカスタムuiviewで行うことです。基本的に、多くのサブビューを使用するとオーバーヘッドが大きくなるため、レンダリングが遅くなり、親ビューを介して常に再合成されるようです。 公平を期すために、これは3GSがかなり新しいブランドスパンキンであったときに書かれ、それ以来iDevicesはより速くなりました。それでも、この方法はインターウェブや他の場所で定期的 に高パフォーマンスのテーブルとして推奨されています。実際、これはAppleのTable Sample Codeで推奨される方法であり、いくつかのWWDCビデオ(Practical Drawing for iOS Developers)、および多くのiOS プログラミングブックで推奨されています。 グラフィックをデザインし、それらのコアグラフィックスコードを生成するための素晴らしいツールもあります。 だから、最初は「Core Graphicsが存在する理由はある。それが速い!」と信じるようになった。 しかし、「可能な限りお気に入りのコアグラフィックス」というアイデアが浮かんだと思うとすぐに、drawRectがアプリの応答性の低下の原因であることが多く、メモリの消費が非常に高く、CPUに大きな負担がかかることがわかります。基本的に、「drawRectのオーバーライドを回避する」必要があります(WWDC 2012 iOSアプリのパフォーマンス:グラフィックとアニメーション)) だから、すべてのように、それは複雑だと思います。多分あなたは私と他の人がdrawRectを使用するときと理由を理解するのを助けることができますか? Core Graphicsを使用する明らかな状況がいくつかあります。 動的データがある(Appleの株価チャートの例) シンプルなサイズ変更可能な画像では実行できない柔軟なUI要素がある あなたは動的グラフィックを作成しており、一度レンダリングされると複数の場所で使用されます Core Graphicsを回避する状況が見られます。 ビューのプロパティは個別にアニメーション化する必要があります ビューの階層が比較的小さいので、CGを使用して知覚される余分な労力は利益に値しません すべてを再描画せずにビューの一部を更新したい サブビューのレイアウトは、親ビューのサイズが変更されたときに更新する必要があります だからあなたの知識を授けなさい。drawRect / Core Graphicsにはどのような状況で到達しますか(これはサブビューでも実行できます)?その決定にあなたを導く要因は何ですか?どのように/なぜバターのようなスムーズなテーブルセルスクロールに推奨される1つのカスタムビューで描画するのに、Appleは一般にパフォーマンス上の理由からdrawRectを推奨していませんか?シンプルな背景画像はどうですか(サイズ変更可能なpng画像を使用する場合と、CGを使用して作成する場合)。 価値のあるアプリを作成するためにこのテーマを深く理解する必要はないかもしれませんが、理由を説明できない限り、テクニックを選択するのは好きではありません。私の脳は私に腹を立てます。 質問の更新 情報ありがとうございます。ここにいくつかの明確化する質問: コアグラフィックスで何かを描画しているが、UIImageViewsと事前レンダリングされたpngで同じことを達成できる場合は、常にそのルートをたどりますか? 同様の質問:特にこのようなbadassツールではでは、コアグラフィックスにインターフェイス要素を描画することを検討する必要があるのはいつですか?(おそらく、要素の表示が可変である場合。たとえば、20の異なるカラーバリエーションがあるボタン。他のケースはありますか?) 以下の私の回答を理解しているとしたら、複雑なUIViewのレンダリング自体の後にセルのスナップショットビットマップを効果的にキャプチャし、複雑なビューをスクロールして非表示にしているときにそれを表示することで、テーブルセルと同じパフォーマンス向上が得られるでしょうか?明らかに、いくつかの作品は解決する必要があります。ただ面白いと思った。




20
動的なセルの高さのあるUITableViewのreloadData()が原因でスクロールが不安定になる
これは一般的な問題である可能性があり、一般的な解決策があるかどうか疑問に思っていました。 基本的に、私のUITableViewには、すべてのセルの動的なセルの高さがあります。UITableViewの一番上にいない場合、上にtableView.reloadData()スクロールするとびくびくします。 これは、データをリロードしたため、上にスクロールしているときに、UITableViewが表示されている各セルの高さを再計算しているためと考えられます。それをどのように軽減するか、または特定のIndexPathからUITableViewの最後までのみreloadDataをリロードする方法は? さらに、何とか一番上までスクロールしても、下にスクロールしてから上にスクロールできます。ジャンプする必要はありません。これは、UITableViewCellの高さが既に計算されているためです。

10
アプリがiPhoneのWebページからインストールされているかどうかを確認する方法
iPhoneにアプリケーションがインストールされていない場合にiPhoneをapp-storeにリダイレクトするWebページを作成したいのですが、iPhoneにアプリケーションがインストールされている場合は、アプリケーションでアプリケーションを開きます。 iPhoneアプリケーションに既にカスタムURLを実装しているので、次のようなアプリケーションのURLを取得しています。 myapp:// このURLが無効な場合、ページをアプリストアにリダイレクトします。これはまったく可能ですか? アプリケーションを電話にインストールしておらず、myapp:// URLをSafariに書き込むと、エラーメッセージだけが表示されます。 javascriptによる醜いハックがあったとしても、本当に知りたいのですか?

17
AVFoundation AVPlayerでビデオをループしますか?
AVFoundationでビデオをループする比較的簡単な方法はありますか? AVPlayerとAVPlayerLayerを次のように作成しました。 avPlayer = [[AVPlayer playerWithURL:videoUrl] retain]; avPlayerLayer = [[AVPlayerLayer playerLayerWithPlayer:avPlayer] retain]; avPlayerLayer.frame = contentView.layer.bounds; [contentView.layer addSublayer: avPlayerLayer]; それから私は私のとビデオを再生します: [avPlayer play]; ビデオは正常に再生されますが、最後に停止します。MPMoviePlayerControllerを使用すると、そのrepeatModeプロパティを適切な値に設定するだけです。AVPlayerには同様のプロパティがないようです。また、映画がいつ終了したかを通知するコールバックもないため、最初に戻って再生できます。 MPMoviePlayerControllerには重大な制限があるため、ここでは使用していません。複数のビデオストリームを一度に再生したい。

8
Xcode /シミュレーター:古いバージョンのiOSを実行するには?
iOS SDK 4.2へのアップグレードを考えています。しかし、iOS 3.2としてシミュレータを実行できるかどうかは疑問です。これは、iPad用のiAdsを作成しているが、プログラムがiOS 3.2で実行されるかどうかを確認したいためです。 注:私はこれと似たような投稿を以前に見たことがありますが、これがどのように行われるかについての正確な手順を説明するのにはあまり役に立ちませんでした。
142 ios  objective-c  iphone  xcode  ipad 

13
NSLayoutConstraintの乗数プロパティを変更できますか?
1つのスーパービューに2つのビューを作成し、ビュー間に制約を追加しました。 _indicatorConstrainWidth = [NSLayoutConstraint constraintWithItem:self.view1 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.view2 attribute:NSLayoutAttributeWidth multiplier:1.0f constant:0.0f]; [_indicatorConstrainWidth setPriority:UILayoutPriorityDefaultLow]; _indicatorConstrainHeight = [NSLayoutConstraint constraintWithItem:self.view1 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.view2 attribute:NSLayoutAttributeHeight multiplier:1.0f constant:0.0f]; [_indicatorConstrainHeight setPriority:UILayoutPriorityDefaultLow]; [self addConstraint:_indicatorConstrainWidth]; [self addConstraint:_indicatorConstrainHeight]; アニメーションでマルチプライヤプロパティを変更したいのですが、マルチプライヤプロパティを変更する方法がわかりません。(ヘッダーファイルNSLayoutConstraint.hのプライベートプロパティに_coefficientが見つかりましたが、プライベートです。) 複数のプロパティを変更するにはどうすればよいですか? 私の回避策は、古い制約を削除して、の値が異なる新しい制約を追加することですmultipler。

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