ラベル iPad の投稿を表示しています。 すべての投稿を表示
ラベル iPad の投稿を表示しています。 すべての投稿を表示

2014年6月30日月曜日

[iOS]UISliderとCGAffineTransform

UISliderでCGAffineTransformを使用するとつまみがタップできなくなるタイミングがある
再現率は100%ではない
ちょっと調べてみたが対策法はなさそうなのでUIScrollViewなどで代用するしかなさそうだ

2014年2月26日水曜日

[iOS]Xcode5でiPadのスプラッシュが表示されない問題

Xcode5.0.2でスプラッシュ画像追加のためProject>Launch Imagesから
Defaults-Portrait、Defaults-Portrait@2x、Default-Portrait.png、Default-Portrait@2x.png
の画像を設定するもスプラッシュは表示されない

どうやらiOS6.1以下の各種画像とiOS7.0以上の画像が同じリソースを使うと表示されないようだ

対処法
Defaultの画像4つををコピーして適当な名前にする
Launch Images>iPad>各種(iOS 6.1 and Prior)にコピーした画像を設定する
設定時に、リネームするか、と聞いてくるので自動でリネームさせる
iPadのスプラッシュ画像が表示される、良かった

2013年5月14日火曜日

[iOS]Interface BuilderでUIScrollViewのContentSizeを設定することはできない。


Interface BuilderでUIScrollViewのContentSizeを設定使用と思ったが、
それを行うUIが無いことに気づいた。

http://stackoverflow.com/questions/1135163/how-do-i-use-uiscrollview-in-interface-builder
によると、ContentSizeはコード状態のみ設定可能のようだ、IBでやるのは諦めよう。
ただしiOS6のAuto Layoutを使用すれば可能になる。

With Autolayout (iOS6+), you can avoid setting contentSize. Set the following constraints instead:
Pin the top of the scrollview to the top of its top-most child.
And pin the bottom to the bottom of its bottom-most child.

2013年3月8日金曜日

[iOS]Enumeration values * not handled in switch


Enumeration values * not handled in switch

列挙子*はswitchで処理されていません。
つまりswitchで列挙子をすべて網羅する必要がある。

2013年3月4日月曜日

[iOS]iOS4.3~5.1~6.1に回転対応をする

あらかじめ[appname].plistSupported interface orientationsを設定する必要がある。

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    //iOS 4.3~5.1 回転時の呼び出しメソッドを設定
    
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(orientationChanged:)
                                                 name:UIDeviceOrientationDidChangeNotification
                                               object:nil];
}

- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
    //iOS 4.3~5.1 回転の停止
    //他のViewControllerで使用したくないときはここでキャンセルする
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:UIDeviceOrientationDidChangeNotification
                                                  object:nil];
}

//iOS 6.0~ 回転をサポートするか
- (BOOL)shouldAutorotate
{
    return YES;
}

//iOS 6.0~ 推奨される向き
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationLandscapeLeft;
}

//iOS 6.0~ サポートする向き
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

//iOS 4.3~5.1 回転をサポートするか?
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

//回転時の動作
- (void)orientationChanged:(NSNotification *)notification
{

}

//回転時のアニメーションを定義
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{

}

//回転前に呼び出される
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{

}

2013年2月8日金曜日

[iOS]iPadのサイズとか

iPhoneサイズ
320x480
640x960
640x1136

ステータスバーを省いたサイズ
320x460
640x620
640x1096

iPad、iPadMiniサイズ
Portrait 768 x 1024
Landscape 1024 x 768

ステータスバーを省いたサイズ
Portrait 768 x 1004
Landscape 1024 x 748


iPad(Retina)サイズ
Portrait 1536 x 2048
Landscape 2048 x 1536

ステータスバーを省いたサイズ
Portrait 1536 x 2008
Landscape 2048 x 1496


2012年12月27日木曜日

[iOS]iPhone、iPadの画面サイズ、フレームサイズを取得する


iOSの画面サイズは取得にくい、特に特にステータスバーやツールバーの存在がやっかい。

//現在のビューのサイズ、ツールバーやステータスバーのサイズは引かれる
//iPhone4でステータスバー、ナビゲーションバー、ステータスバーがあるとき、heightは480-20-44-44になる
self.view.frame.size.width
self.view.frame.size.height

//現在の端末のスクリーンサイズ
//iPhone4ではheight480、iPhone5ではheight568になる
[[UIScreen mainScreen] bounds].size.width
[[UIScreen mainScreen] bounds].size.height

//現在の端末のスクリーンサイズでステータスバー領域を含む
//iPhone4ではheight460、iPhone5ではheight548になる
[[UIScreen mainScreen] mainScreen].size.width
[[UIScreen mainScreen] mainScreen].size.height

問題になるのはナビゲーションバーを非表示のビューからpushしたビューで
viewDidLoadで
ナビゲーションバーを消しても
self.navigationController.navigationBarHidden = NO;
self.view.frame.size.heightは460になるということ

正確なサイズを知りたい時は
viewDidLoadでナビゲーションバーのON/OFFをして
viewDidAppearで座標を取得すること