2013年9月23日月曜日

iOS7でステータスバーが消えなくなった!

ちょっとパニック。

・iPhone5をiOS7にアップデート
・自分のアプリ動かす
・(前回の)UIAlertViewでUITextFieldが表示されない
・修正、起動しようとしたらXcodeから起動できない、7のSDKがない
・Xcode5にアップデート
・修正したアプリを起動すると、広告が変な位置に。。。
・よく見るとステータスバーが表示されている
・デバッグで見ると画面サイズが20px減っている(568->548px)
・画面をずらす対策でようやくOK

長い。。
起動するまで時間かかった上、ステータスバーは普通のやり方で消せませんでした。

◆Cocos2dの場合
AppDelegate.mmのdidFinishLaunchingWithOptionsに以下を追加

// iOS7でステータスバーが表示され20px狭くなる対応、画面をずらしている
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    [application setStatusBarStyle:UIStatusBarStyleLightContent];
    self.window.clipsToBounds =YES;
    self.window.frame =  CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height-20);
    self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
}

更にinfo.plistに以下を追加
UIViewControllerBasedStatusBarAppearance
値:NO


◆Cocos2dxの場合
RootViewControllerを修正


・RootViewController.h
// iOS7でステータスバーが表示され20px狭くなる対応
- (BOOL) prefersStatusBarHidden;

・RootViewController.mm
// iOS7でステータスバーが表示され20px狭くなる対応
- (BOOL)prefersStatusBarHidden
{
    return YES;
}



Bugとしてチケットきられていました
http://www.cocos2d-x.org/issues/2800

アトピー改善の化合物発見!

 アトピー性皮膚炎の症状を改善する化合物を、
京都大医学研究科の椛島健治准教授や大塚篤司研究員、アステラス製薬などのグループが発見したとのこと。
内服することで皮膚の防護機能を高めるそうです。

アトピーは
  1. 皮膚の防護機能に異常が発生
  2. 異物が侵入
  3. アレルギー反応が起こる
というものです。
この内、1. の防護機能を維持する『フィラグリン』というタンパク質を増やす物質を発見
マウスを使った実験で症状の改善と、副作用がないことを確認したということです。


10年後の実用化を目指しているそうです。
是非頑張って頂きたいです!

・Yahoo!ニュース
http://headlines.yahoo.co.jp/hl?a=20130917-00000019-kyt-l26




2013年9月20日金曜日

iOS7でUITextFieldが表示されない場合

お仕事で開発しているiPhoneアプリがあるのですが、
昨日早速iOS7にアップデートしたiPhone5で起動してみたところ、
ダイアログにテキストフィールドが表示されていない!!

UIAlertViewにUITextFieldを追加していると、表示されないようです。

◆修正前
    UIAlertView* aVIew =
    [[UIAlertView alloc] initWithTitle:@"hoge"
    (中略)
 , nil];

    UITextField* nameField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)];
    [nameField setText:@"fuga"];
    [aVIew addSubview:nameField];


    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    にすることで解決しました。
    取得する場合は、
    UITextField *textField = [alertView textFieldAtIndex:0];

 ◆修正後
    UIAlertView* aVIew =
    [[UIAlertView alloc] initWithTitle:@"hoge"
    (中略)
 , nil];

    aVIew.alertViewStyle = UIAlertViewStylePlainTextInput;
    UITextField* nameField = [_configNameAlert textFieldAtIndex:0];
    [nameField setText:@"fuga"];




こちらを見て解決できました。
http://stackoverflow.com/questions/18549519/unable-to-add-uitextfield-to-uialertview-on-ios7-works-in-ios-6