【iPhone】【Safari】【css】タップ(クリック)した時の灰色の影(highlight)の消し方

iPhoneのSafariでリンクやボタンをタップした時、一瞬だけ背景が暗くなります。「タップした!」という感覚は出ますが、タップ時のcssを具体的に指定したい場合(:activeの指定とか)には、出てほしくない場合もあります。

下記cssでhighlightを消すことができます。

  -webkit-tap-highlight-color: rgba(0,0,0,0);

highlightを完全透明にする記述です。同じように、rgbaの値を変更すれば、ほかの色を設定することもできます。

※参考記事
[CSS] iPhoneのSafariでタップした際に表示される暗めな影を消すCSS – YoheiM .NET

【Xcode】【iOS】ステータスバー(Status Bar)のカスタマイズ

ステータスバーの一括変更

・Info.plist(通常はSupporting Filesの中に入っています。ファイル名は「xxx-Info.plist」)に
「View controller-based status bar」という項目があります(ない場合には追加する必要があります)。
「View controller-based status bar」をNOに設定します。
・適切なところに(例えば、AppDelegate.mのapplication:didFinishLaunchingWithOptions ← はじめて起動時呼び出される処理)、
下記処理を書きます↓↓

//  UIStatusBarStyleDefault:デフォルト
//  UIStatusBarStyleLightContent:フォント白
//  UIStatusBarStyleBlackOpaque:黒
//  UIStatusBarStyleBlackTranslucent:透明
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

ViewController単位でのステータスバー変更

・Info.plistで「View controller-based status bar」をYESに設定します。
・対象ViewControllerに、下記のような処理を書きます↓↓

- (void)viewDidLoad {
    [super viewDidLoad];
    
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
        // ViewControllerでステータスバーの更新を宣言
        [self setNeedsStatusBarAppearanceUpdate];
    }
}

- (BOOL)prefersStatusBarHidden {
//  YES:ステータスバー非表示
//  NO:ステータスバー表示
    return NO;
}

- (UIStatusBarStyle)preferredStatusBarStyle {
//  UIStatusBarStyleDefault:デフォルト
//  UIStatusBarStyleLightContent:フォント白
//  UIStatusBarStyleBlackOpaque:黒
//  UIStatusBarStyleBlackTranslucent:透明
    return UIStatusBarStyleLightContent;
}

【メモ】【iPhone】【Safari】【css】慣性スクロール

スマートフォン(iPhone)サイト作成時、
普通のPCサイトと同じように、「overflow: auto;」で指定すればブロック要素をスクロールさせることができますが、
慣性スクロール(ゆっくり止まるような動き)を実装するには、
「-webkit-overflow-scrolling: touch;」の指定が必要です。

つまり、

  div.scroll {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

↑↑のような感じです。
(widthやheightなどを別途正しく指定する必要があります。)

※OSやブラウザーの対応情報は調べていませんが、バージョンの低くないiPhoneやAndroidでは動くでしょう。

【iPhone】【Safari】【css】ボタンの角丸などの消し方

ボタン類(<input type=”button”>や<input type=”submit”>など)の角丸をクリアしたい場合、

  input[type="button"],input[type="submit"] {
    border-radius: 0;
  }

↑↑を指定するだけでは、iPhoneのSafariではクリアされません!!

その為、下記cssの設定が必要です:

  input[type="button"],input[type="submit"] {
    -webkit-appearance: none;
  }

そうすれば、ボタンのデフォルトcssが初期化されます(角丸以外もクリアされます。例えば、背景など)。

※参考記事
[CSS]iPhoneでsubmitボタンのテキストがずれた時の対応方法 | コリス

【Xcode】【iPhone】【iOS】Icon specified in the Info.plist not found under the top level app wrapper: — Xcode4.3でアプリをアップロードする際に起きたエラー

Xcode4.3でビルドしたアプリをアップロード(オーガナイザー → Archive → Validate…)したら、下記のエラーで怒られました。

Icon specified in the Info.plist not found under the top level app wrapper:

↓↓下記の対策で解決しました↓↓
PROJECT(もしくはTARGET)の「Info」タブの中「Icon files」に、Item 0、Item 1、Item 2・・・のようにいくつかのアイコンがセットされていますが、空白であったものがありました。これを削除すれば問題解決です。
再度アップロードして無事に成功しました。

【PHP】【iPhone】【ApnsPHP】Unable to connect to ‘ssl://gateway.sandbox.push.apple.com:2195’ — ApnsPHPでプッシュ通知を実装するときのエラー

ApnsPHPを使ってプッシュ通知を実装するとき、下記のエラーが発生しました。

Mon, 09 Jul 2012 13:10:04 +0900 ApnsPHP[85724]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195...
Mon, 09 Jul 2012 13:10:05 +0900 ApnsPHP[85724]: ERROR: Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195':  (0)
Mon, 09 Jul 2012 13:10:05 +0900 ApnsPHP[85724]: INFO: Retry to connect (1/3)...
Mon, 09 Jul 2012 13:10:06 +0900 ApnsPHP[85724]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195...
Mon, 09 Jul 2012 13:10:06 +0900 ApnsPHP[85724]: ERROR: Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195':  (0)
Mon, 09 Jul 2012 13:10:06 +0900 ApnsPHP[85724]: INFO: Retry to connect (2/3)...
Mon, 09 Jul 2012 13:10:07 +0900 ApnsPHP[85724]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195...
Mon, 09 Jul 2012 13:10:07 +0900 ApnsPHP[85724]: ERROR: Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195':  (0)
Mon, 09 Jul 2012 13:10:07 +0900 ApnsPHP[85724]: INFO: Retry to connect (3/3)...
Mon, 09 Jul 2012 13:10:08 +0900 ApnsPHP[85724]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195...

いろいろ悩んだ結果、下記ページに載った方法で解決しました:
http://stackoverflow.com/questions/6279185/apnsphp-cant-connect-to-apple-gateway

→ 簡単にまとめますと、結局、ライブラリを1箇所修正した方向で行きました:
Abstract.phpの343行目の近くの「’verify_peer’ => isset($this->_sRootCertificationAuthorityFile),」をコメントアウトしました。

  'verify_peer' => isset($this->_sRootCertificationAuthorityFile),
→
//  'verify_peer' => isset($this->_sRootCertificationAuthorityFile),

でも、やはり危なく感じていますので、何か良い解決策があったら教えていただければと思います。