タグ

ブックマーク / qiita.com/ukitaka (2)

  • Swiftでprotocol型の値がそのprotocol自身にconformしていない理由 - Qiita

    iOSのDiscordで定期的にあがる話題として「protocol型の値がそのprotocol自身にconformしていないのはなぜ?」というものがあります。 例えば以下のようなコードです。 protocol Animal { func bark() } struct Dog: Animal { func bark() { print("わんわん") } } func f<A: Animal>(_ animal: A) { ... } // これはOK let dog: Dog = Dog() f(dog) // こっちはNG // error: cannot invoke 'f' with an argument list of type '(Animal)' let animal: Animal = Dog() f(animal) 毎度話題に上がるたびに「で、なんでなんだっけ?」となっ

    Swiftでprotocol型の値がそのprotocol自身にconformしていない理由 - Qiita
    peketamin
    peketamin 2018/03/24
  • Googleから学ぶ ヌルヌルサクサクなスライドメニュー - Qiita

    スマフォwebページのスライドメニュー アプリでは当たり前のように実装されているスライドメニューですが、webページではなかなか使い心地のよいスライドメニューが実装されているのは見かけません。 スマートフォンのブラウザではjavascriptでのアニメーションはどうしてもガタガタになってしまうし、ちらつきやスクロール制御のめんどくささからもうwebページでネイティブアプリ並のスライドメニューを実装するなんて無理と思っていました。 Facebookのwebページですらボタンの反応は悪いしアニメーションも動かないし最悪です。 一方Google先生はパーフェクトなスライドメニューを実装していた さすがGoogle先生! 俺達に出来ないことを( Googleのスライドメニューは以下の点でパーフェクトです。 1. スライドのアニメーションがとても滑らか・ちらつかない 2. ボタンの反応にストレスを感

    Googleから学ぶ ヌルヌルサクサクなスライドメニュー - Qiita
    peketamin
    peketamin 2013/06/08
  • 1