SlideShare a Scribd company logo
1 of 46
Download to read offline
TinderUIとスクロール
potatotips 22
Who?
• takahito_morinaga_5
• GitHub:ipacho

Twitter:ipa_cho
• iOSとAndroidエンジニア
• アニメ好き
_人人人人人_
> Tinder <
 ̄Y^Y^Y^Y ̄
圧倒的におしゃれ
TinderUI
• リア充アプリで火がついた
• 2択の選択をするためのUI
• スマホ特有のスワイプで振り分けできる
• カードを振り分けるって楽しい
つかってみたい!
https://github.com/
modocache/
MDCSwipeToChoose
_人人人人人_
> 神降臨 <
 ̄Y^Y^Y^Y ̄
ありがとうございました!
注:宣伝
今回は求人票の
振り分けを行うUIでした
スマイループス
会社名
求人タイトル
職種
を入れます
エンジニア
アプリ開発を支えてくれる
エンジニア募集!
完璧。
TinderUI
• 2択の選択をするためのUI
• スマホ特有のスワイプで振り分けできる
• カードを振り分けるって楽しい
これだけではいい求人
かどうか分からない!
「雇用形態」
「給与」
「福利厚生」
「勤務地」
「ポエム」
などが必要
更に
伝家の宝刀
タップして詳細
スマイループス
エンジニア
アプリ開発を支えてくれる
エンジニア募集!
カードを
タップ!
TinderUIとは
なんだったのか!!
これスクロールすれば
いいんじゃね?
よし、UIScrollViewを
入れてみよう
https://github.com/
modocache/
MDCSwipeToChoose
_人人人人人_
> 神再降臨 <
 ̄Y^Y^Y^Y ̄
あれ?
慣性スクロール中
には
スワイプできない
/(^o^)\
UIScrollViewのUIPanGestureRecognizer
と
TinderUIのUIPanGestureRecognizer
が干渉してる?
慣性スクロール中UIScrollViewの
GestureRecognizerを切ろう
慣性スクロール?
• UIScrollViewにはdeceleratingというプロパ
ティがある。
public var decelerating: Bool { get }
// returns YES if user isn't dragging (touch up) but
scroll view is still moving
スワイプのタップタイミングで
これをチェックしよう。
UITapGestureRecognizerが反応しない
touchesBeginでも上手くいかない
なにか間違ってる
単に複数の
PanGestureRecognizerを
使いたいだけなんだ!
• shouldRecognizeSimultaneouslyWithGestur
eRecognizer

→ダメ
• shouldReceiveTouch

→ダメ
スクロール制御を切ると追加スクロール判定とか面倒
そもそも
別々のRecognizerで
制御するのは無理では?
UIScrollViewの
UIPanGestureRecognizerを
使わずにやろう
慣性スクロールの実装が大変
実際に慣性スクロールを作ってみても気持ち悪い
スクロールを口走った
自分を呪う
たしかタッチイベントは外のViewから伝わって、
中のViewから上がってくるようになっていた
ような気がする・・・
UIWindow側で制御しよう
UIWindowのsendEventメソッドを
オーバライドする
画面内にボタンもあるので、
ドラッグ中以外で領域外のタップは
superで処理を行う
各タッチイベントを処理していく
指を動かしている時
rotateAngleFunctionを定義して、
横方向の移動量に合わせて角度をつける
指を動かしている時
layerのpositionには、タップ位置に合わせて
verticalYAxisFunctionで横方向の移動量に対して
縦方向の移動量にプラスαで加算して移動する
• 最終的にはコンテンツはWebViewで表示
• loadHTMLStringだとたまにCSSが反映されな
い

→CSSをstyleタグで中に埋め込むと解決
• 派手なリアクションアニメーション

→CALayerとKeyFrameAnimationで対応
まとめ
• UIScrollViewとPanを組み合わせると面倒
• 頑張ればできる
Xcode7で作ったViewが
iOS7、8の時に
インスタンス化が遅い現象に
見舞われている方
いらっしゃいましたら、
是非お声がけください!

More Related Content

What's hot

ゲームを語らずにデザインを語る
ゲームを語らずにデザインを語るゲームを語らずにデザインを語る
ゲームを語らずにデザインを語るAsato Shimotaki
 
ぐるなび・食べログ・検索は古い!?Instagramで店を探す方法
ぐるなび・食べログ・検索は古い!?Instagramで店を探す方法ぐるなび・食べログ・検索は古い!?Instagramで店を探す方法
ぐるなび・食べログ・検索は古い!?Instagramで店を探す方法新潟コンサルタント横田秀珠
 
エンタメとロボットとちょっと未来のわたしたち
エンタメとロボットとちょっと未来のわたしたちエンタメとロボットとちょっと未来のわたしたち
エンタメとロボットとちょっと未来のわたしたちTaisuke Ozaki
 
ヤバいね(Yabaine)企画
ヤバいね(Yabaine)企画ヤバいね(Yabaine)企画
ヤバいね(Yabaine)企画宏之 藤原
 
AKIBAX2010 新ブーム「電子工作」を体験しよう!
AKIBAX2010 新ブーム「電子工作」を体験しよう!AKIBAX2010 新ブーム「電子工作」を体験しよう!
AKIBAX2010 新ブーム「電子工作」を体験しよう!encafe
 
ハッシュタグ付きFacebookの投稿は下心が見える化の可能性
ハッシュタグ付きFacebookの投稿は下心が見える化の可能性ハッシュタグ付きFacebookの投稿は下心が見える化の可能性
ハッシュタグ付きFacebookの投稿は下心が見える化の可能性新潟コンサルタント横田秀珠
 

What's hot (7)

ゲームを語らずにデザインを語る
ゲームを語らずにデザインを語るゲームを語らずにデザインを語る
ゲームを語らずにデザインを語る
 
ぐるなび・食べログ・検索は古い!?Instagramで店を探す方法
ぐるなび・食べログ・検索は古い!?Instagramで店を探す方法ぐるなび・食べログ・検索は古い!?Instagramで店を探す方法
ぐるなび・食べログ・検索は古い!?Instagramで店を探す方法
 
エンタメとロボットとちょっと未来のわたしたち
エンタメとロボットとちょっと未来のわたしたちエンタメとロボットとちょっと未来のわたしたち
エンタメとロボットとちょっと未来のわたしたち
 
グーグルAIスマートスピーカーGoogle Home Miniレビュー
グーグルAIスマートスピーカーGoogle Home MiniレビューグーグルAIスマートスピーカーGoogle Home Miniレビュー
グーグルAIスマートスピーカーGoogle Home Miniレビュー
 
ヤバいね(Yabaine)企画
ヤバいね(Yabaine)企画ヤバいね(Yabaine)企画
ヤバいね(Yabaine)企画
 
AKIBAX2010 新ブーム「電子工作」を体験しよう!
AKIBAX2010 新ブーム「電子工作」を体験しよう!AKIBAX2010 新ブーム「電子工作」を体験しよう!
AKIBAX2010 新ブーム「電子工作」を体験しよう!
 
ハッシュタグ付きFacebookの投稿は下心が見える化の可能性
ハッシュタグ付きFacebookの投稿は下心が見える化の可能性ハッシュタグ付きFacebookの投稿は下心が見える化の可能性
ハッシュタグ付きFacebookの投稿は下心が見える化の可能性
 

Similar to TinderUIとスワイプ

WEB業界でほしい人材とは? そしてWEB業界の実際
WEB業界でほしい人材とは? そしてWEB業界の実際WEB業界でほしい人材とは? そしてWEB業界の実際
WEB業界でほしい人材とは? そしてWEB業界の実際Hiroyuki Yamaoka
 
Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!yutannihilation
 
新規Androidアプリ開発において何より大切なこと
新規Androidアプリ開発において何より大切なこと新規Androidアプリ開発において何より大切なこと
新規Androidアプリ開発において何より大切なことHiroshi Kikuchi
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10Takuya Nishimoto
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-nishio
 
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―Hisao Soyama
 
多人数iOSアプリ開発を考える
多人数iOSアプリ開発を考える多人数iOSアプリ開発を考える
多人数iOSアプリ開発を考えるsasaron 397
 
岡山スマホアプリ開発もくもく会 #oso2016
岡山スマホアプリ開発もくもく会 #oso2016岡山スマホアプリ開発もくもく会 #oso2016
岡山スマホアプリ開発もくもく会 #oso2016Ikki Takahashi
 
東方ゲームAIとその歴史
東方ゲームAIとその歴史東方ゲームAIとその歴史
東方ゲームAIとその歴史ide_an
 
勉強会のこちら側とあちら側
勉強会のこちら側とあちら側勉強会のこちら側とあちら側
勉強会のこちら側とあちら側Tomoki Hasegawa
 
Twilio+rails+sms #sg_study
Twilio+rails+sms #sg_studyTwilio+rails+sms #sg_study
Twilio+rails+sms #sg_studyJunichi Ito
 
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210Osamu Ise
 
なれる!フリーランス
なれる!フリーランスなれる!フリーランス
なれる!フリーランスleverages_event
 
Twitter botのレシピ
Twitter botのレシピTwitter botのレシピ
Twitter botのレシピTakuto Matsuu
 
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教えるichigotake .
 
ChromeとAndroidの 過去・現在・未来 ver 0.1
ChromeとAndroidの 過去・現在・未来  ver 0.1ChromeとAndroidの 過去・現在・未来  ver 0.1
ChromeとAndroidの 過去・現在・未来 ver 0.1Shinobu Okano
 
ぎっと、これから
ぎっと、これからぎっと、これから
ぎっと、これからRyo Tajima
 

Similar to TinderUIとスワイプ (20)

WEB業界でほしい人材とは? そしてWEB業界の実際
WEB業界でほしい人材とは? そしてWEB業界の実際WEB業界でほしい人材とは? そしてWEB業界の実際
WEB業界でほしい人材とは? そしてWEB業界の実際
 
Swift Scriptingのすゝめ
Swift ScriptingのすゝめSwift Scriptingのすゝめ
Swift Scriptingのすゝめ
 
Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!
 
Cmujp21_node-webkit
Cmujp21_node-webkitCmujp21_node-webkit
Cmujp21_node-webkit
 
新規Androidアプリ開発において何より大切なこと
新規Androidアプリ開発において何より大切なこと新規Androidアプリ開発において何より大切なこと
新規Androidアプリ開発において何より大切なこと
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
 
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
 
多人数iOSアプリ開発を考える
多人数iOSアプリ開発を考える多人数iOSアプリ開発を考える
多人数iOSアプリ開発を考える
 
岡山スマホアプリ開発もくもく会 #oso2016
岡山スマホアプリ開発もくもく会 #oso2016岡山スマホアプリ開発もくもく会 #oso2016
岡山スマホアプリ開発もくもく会 #oso2016
 
東方ゲームAIとその歴史
東方ゲームAIとその歴史東方ゲームAIとその歴史
東方ゲームAIとその歴史
 
勉強会のこちら側とあちら側
勉強会のこちら側とあちら側勉強会のこちら側とあちら側
勉強会のこちら側とあちら側
 
Twilio+rails+sms #sg_study
Twilio+rails+sms #sg_studyTwilio+rails+sms #sg_study
Twilio+rails+sms #sg_study
 
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
 
チームラボ忘年会
チームラボ忘年会チームラボ忘年会
チームラボ忘年会
 
なれる!フリーランス
なれる!フリーランスなれる!フリーランス
なれる!フリーランス
 
Twitter botのレシピ
Twitter botのレシピTwitter botのレシピ
Twitter botのレシピ
 
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
 
ChromeとAndroidの 過去・現在・未来 ver 0.1
ChromeとAndroidの 過去・現在・未来  ver 0.1ChromeとAndroidの 過去・現在・未来  ver 0.1
ChromeとAndroidの 過去・現在・未来 ver 0.1
 
ぎっと、これから
ぎっと、これからぎっと、これから
ぎっと、これから
 

TinderUIとスワイプ