UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 60, 30)];
先日ポストした後輩が作るアプリは動画を再生するアプリを作るみたい。 動画再生にはMPMoviePlayerControllerがあるが、動画をアプリからコントロールするので、MPMoviePlayerControllerに表示される再生ボタンなどのコントローラーはいらないらしい。 そうなると、AVFoundationを使って表示させた方が都合がいいです。 重要なクラスは、以下の2つ。 1. AVPlayer 動画を制御するクラス。 動画についての様々な情報も持っている。 2. AVPlayerLayer 動画を表示するクラス。 AVPlayerLayerはCoreAnimationのCALayerのサブクラス。 レイヤーなので、UIViewのlayerプロパティなどに追加(addSublayer)して使う。 よく見るこのページでは、UIViewのクラスメソッドlayerClass
lldbのrecursiveDescriptionがめっちゃ便利です。 lldbでUIViewのsubviewを再帰的に確認できます。 (lldb) po [self.view recursiveDescription] <UIView: 0x113713260; frame = (0 0; 320 568); autoresize = RM+BM; layer = <CALayer: 0x10bca42f0>> | <_UILayoutGuide: 0x10bcac7d0; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x11370df90>> | <_UILayoutGuide: 0x10bcb0650; frame = (0 0; 0 0); hidden = YES; layer = <CALayer: 0x10bc257
UIViewの表示内容は、画像コンテキストからUIImageとして取得できるので、そのまま画像に保存することが可能です。 以下のコードは、MKPinAnnotationViewを、ピンのカラーを指定して画像に出力するコードです。 - (void)writePinAnnotationView:(MKPinAnnotationColor)pinColor { static NSString *annotationIdentifier = @"Annotation"; MKPinAnnotationView *view =[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationIdentifier]; view.pinColor = pinColor; NSString *file
わたくし先週はビューの回転にすっかりハマってしまいまして。。。 自戒の意味も込めて、ビュー関連のデバッグに便利そうな手法をしらべましたのでまとめてみました。 recursiveDescriptionメソッド ビューの階層構造やframeの値を一気に取得するためのメソッド。 (※非公開メソッドのため、ビルドするとワーニングになります。) 使い方は至って簡単。階層構造や階層に含まれるビューの情報を知りたいビューに対して直接このメッセージを呼べよいです。 NSLog(@"%@", [self.view recursiveDescription]); layer.borderColor layer.borderWidth ビューを回転させるとき、Affine変換等によって期待した変換ができているかを確かめるときに重宝しました。 ビューのレイヤにアクセスしてレイヤの枠に色を付けてやります。 //Qu
UIView の位置やサイズを知るプロパティに frame と bounds があります。この frame とbounds の違いを簡単にまとめて見ました。 簡単にまとめると以下のようになります。 frame はスーパービューから見た座標 bounds はローカルのビューから見た座標 実際に親子関係のビューを作成して確認してみます。 ViewB は ViewA の中に配置されています。 [ViewA addSubView:ViewB] のような関係です。 この時の frame と bounds はそれぞれ以下のようになります。 ViewA.frame origin: 0,0 size: 550×400 ViewA.bouns origin: 0,0 size: 550×400 ViewB.frame origin: 200,100 size: 200×250 ViewB.bounds or
こんにちは、共同開発部 iOS アプリ開発担当の図子です。 iOS 開発をしている皆さんはどういったタイミングで View のレイアウトをおこなっていますか?私は1年くらい前までは ViewController の viewWillAppar 等のメソッド内や、ViewController から View へ情報をセットするタイミングで ViewController 側から直接 View の frame やその View が持つ UILabel の frame を触っていたりしていました。これだと、想定外のタイミングでレイアウトが崩れたり、ViewController 側のコード量がふくれあがってしまいがちであまり良くないと思います。また、autoresizingMask を使うと楽ですが少し込み入ったレイアウトが必要になってくると autoresizingMask では対応できなくなって
UIViewにはアニメーション関連メソッドが用意されているので、お手軽にアニメーションを実行することができます。ボタン、ラベル、画像などは全てUIViewを継承しているので基本的に全て同じ方法で実行可能です。 まずはUIViewの初期化メソッドでUIButtonを生成してViewに追加しておきます。このボタンが押されると@selector()で指定してあるメソッドが呼ばれるので、そこでアニメーションを実行します。 - (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { self.backgroundColor = [UIColor whiteColor]; // button UIButton *btn= [UIButton buttonWithType:UIButtonTypeRounde
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く