UIKitやFoundationには、iOS 2.0のころから存在するのに、意外と知られていない便利なメソッドやプロパティがたくさんあります。今回はUIViewのメソッドをご紹介します。 UIViewはUIViewControllerと違ってライフサイクルが単純で、どのタイミングで自分自身が画面上に追加されたのか、どのタイミングで自分自身が画面から外されたのか、などを把握しづらいとお嘆きの方がいらっしゃると思います。事実その用途のためだけにUIViewControllerを使ってプログラミングをしている人も見かけます。そこで以下のメソッドをご紹介です。willMoveToSuperview:自分自身が新しいSuperview以下に移動しようとしたとき(新しいSuperviewに対してaddSubview:されようとしたとき)に呼び出されます。didMoveToSuperview自分自身が新
今回のテーマは、viewの描画方法。特にxibで作成したviewの利用方法です。 viewを描画するためにはいくつか方法があります。前回の投稿でAdamさんが書かれているように、コーディングで記述する方法とxibを利用する方法です。 コーディングを行う場合はメンドクサイですが、自分ですべて書けるので何をやっているか分かりやすいですね。その代わりにxibを利用すると、viewの作成は簡単。ただどうやってそれを使えばいいのか少し分かりづらい。ここが最初に躓きやすい所ではないでしょうか。 実はxibファイルで作成したviewを利用する際にも、コーディングをする方法とxibを利用する方法、そしてそのハイブリッド版があります。これらについて、原始的な方法から順に説明をします。 0.コーディング”のみ”による描画 まず最初に、xibを使わずに描画をするサンプルです。 - (BOOL)applicati
最近研究室の色々で地図関係の iPhone アプリを開発しているのだけど,Map のように自分の位置に青い丸いのを表示して,その周囲に波紋のようなものをアニメーションで表示したいと思って試行錯誤してみた. UIView のアニメーションについては,iOS4 以降では animateWithDuration:delay:options:animations:completion などの block-based animation methods が推奨されている.従来のbeginAnimations:context: や setAnimationDuration: や setAnimationTransition:forView:cache: は推奨されていない(discouraged). // block-based animation methods for iOS4 + animate
まだまだ知らないことだらけのプログラマです。 素人でネットから色々助けてもらっているので、自分も少しでも人の役に立ちたいと思いブログはじめました。 何らかのビューを生成して貼付ける時に、自分でいちいちビューの中身をプログラムで書くのはめんどい。。。 という事でxibファイルを使う。 そこで動的に?ようは使いたい時にxibから生成したい!という時のスースコードだ。 http://stackoverflow.com/questions/540345/how-do-you-load-custom-uitableviewcells-from-xib-files 自分はこれを参考。。というか、まここのページにあるコードをコピーして使ってます。 たったの2行なのでが。。 xibファイルの名前 = test.xib //これでxibを読み込み配列に保存出来るらしい。 NSArray *topLevelO
トランジション調査の為に簡単なサンプルを作った。 UIViewのトランジション UIViewには次の5つが用意されている。 typedef enum { UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAnimationTransitionCurlDown, } UIViewAnimationTransition; これらを見ることのできるサンプルを作った。 ソースコード アニメーション部分だけ抜き出すとこんな感じ。 - (void)doTransition:(UIViewAnimationTransition)transition { [UI
iPadアプリを現在作っているのですが、背景画像の設定方法がわからなくて、Interface Builder上のいちばん下にUIImageViewを貼付けていたりしたのですが、他のパーツを動かすときにいちいち選択状態になって邪魔だったり、そもそも余分なインスタンスを持ってしまうのでバグが発生しやすくなるかも?という事でなるべく避けたかったので調べていたら、UIColorに画像を指定する方法を見つけました。 ほぼ100%こちらのブログを参考にさせていただいています。。すみません。 http://r-force.seesaa.net/article/164146136.html 使用方法はこんな感じです。background.pngってのは背景画像として使う画像ですよ。 UIImage *backgroundImage = [UIImage imageNamed:@”background.pn
Appleに関するニュースやiPhone/iPad、iOSアプリケーション開発について淡々と綴っています。 スタンプを貼る動作があるアプリの場合、 画像を選択して、画面をタッチしたあとそのまま動かしたり、 いったん手を話してからまた動かせるようなものがあります。 いろいろな処理と組み合わさって複雑になってくると大変ですが、 基本的な部分は同じです。 UIViewのtransformプロパティを使います。 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event まずプロパティでスタンプをひとつ作っておきます。 @property (nonatomic, retain) UIImageView
iPhone開発のメモです。[UIView beginAnimations:nil context:NULL]; { // アニメーション1つ目 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:7.5]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:XXX cache:YES]; [UIView commitAnimations]; // アニメーション2つ目 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:7.5]; [UIView setAnimationTransition:UIView
iOS4から、UIViewのアニメーションはblockを用いて書くようになりました。 従来のやり方でも動く事は動きますが、公式ドキュメントでは非推奨と書いてあるので早めに新しい方法に移行した方が良いでしょう。 新しい方法では、アニメーションは次の様に書きます。 [UIView animateWithDuration:1.0f delay:0.3f options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionRepeat animations:^{ [view setFrame:NEW_FRAME]; [view setAlpha:0.0f]; } completion:^(BOOL finished){ [self endAnimation]; }]; animationsというのがアニメーションの中身
エンサイツ株式会社による iPhone / iPod touch アプリ開発に関するTIPS等の技術情報です。 受託開発も承っておりますので、お問い合わせページよりお気軽にご連絡ください。 サンプルコード「ViewTransition」にあるようにCATransitionを使う方法でももちろんよいのですが、UIViewクラスのクラスメソッドを使う方が、登場するクラスが少ないという意味ではよりシンプルです。 ぱっと見ではsetAnimationTransition:forView:cache:メソッドが使えそうですが、1つ目の引数として与えるトランジションのタイプの選択肢にクロスフェードがありません。そこで、あらかじめ切り替え後のビューをalpha=0.0の状態でaddSubview:しておいた上で、以下のようにします。 [UIView beginAnimations:nil context
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
UIViewをアニメーションさせる方法 簡単な方法 CGContextRef context = UIGraphicsGetCurrentContext(); [UIView beginAnimations:nil context:context]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:<アニメーションを完了させるまでの秒数(float)>]; <ここにアニメーション後の状態を記述する。> [UIView commitAnimations]; 例1:UIViewから派生させたビュークラス(view1)を1秒かけてフェードアウトさせる場合 CGContextRef context = UIGraphicsGetCurrentContext(); [UIVi
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { このメソッドでNOを返せばViewの自動回転をしない、YESを返せば自動回転をする、という設定になります。 が、加えて引数のinterfaceOrientationの状態を見れば本体がどの向きになっているのかを検知できます。 UIInterfaceOrientationはenumで値はそれぞれ以下の状態を表します。 UIInterfaceOrientationPortrait これはホームボタンが画面の下側にある状態。通常の状態。 UIInterfaceOrientationPortraitUpsideDown これはホームボタンが画面の上側にある状態。通常と逆さまの状態。 UIInterfaceOri
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ページを開く