(すぐに忘れてしまう自分の為の備忘録です。【Swift4】UIScrollViewで電子書籍風に。コメントをどうぞUIScrollViewを使って電子書籍風?な感じで見れるものを作ってみました。スクロール【Swift】UIScrollViewの使い方。大きい部品をスクロールして見る。・表示させる画像ファイルを用意する。・画像のサイズは多少、大小してもscrollViewの幅にリサイズ、画面中央に配置。・漫画のように右から左へ見ていく。UIScrollViewについて。UIScrollViewはいろいろとサイズのプロパティがあってややこしい。参考サイトから真似てプロパティを説明する画像を作ってみた。UIScrollViewに使われるサイズは大きく分けて2つ。frameとcontentSizeだ。frameのサイズは画面に表示される「枠」のサイズ。contentSizeが枠のなかに表示される「移動可能な領域」のサイズ。実際にはcontentSizeのうえにframeがあってそこから覗き込んでる感じなのでややこしく感じる。frame.origin.y)というプロパティとframe.size.widthという幅と、frame.size.heightという高さのプロパティを持っている。frame.originはiPhoneの画面の起点からの距離というところに注意。contentOffset.yというscrollViewに対する位置情報とcontentSize.widthという幅と、contentSize.heightという高さのプロパティを持っている。contentInsetは今回使わないので割愛。今回は電子書籍風ということでscrollViewのframeとcontentSizeの高さを揃えて、contentOffset.xの値が変動することによって画面が横スクロールするイメージです。StoryboardでViewControllerを開き、ScrollViewを配置します。Enabledにチェックを入れます。これでscrollViewがページ単位で動くようになります。Assetsに画像を放り込みます。・AutoLayoutの処理を待ってviwDidApearから処理を始めます。・scrollViewのサイズが決まったら高さと幅を取得。・scrollView幅に合わせて画像のサイズを変更してsubviewに貼っていく。・subviewを配列に取り込んで順番を逆転。・順にscrollViewの幅ずつずらしていく。・scrollViewの幅×画像の数をcontentSizeの幅にする。・contentSizeの高さはscrollViewの高さと同じ。・scrollViewの初期位置を一番右の画像に持ってくる。//AutoLayoutでscrollViewのサイズが決定してから計算しないとおかしくなるのでここで処理。//scrollViewの幅に合わせて高さを計算し幅と高さを入力。//配列を作って、scrollViewに貼り付けられたsubviewの画像を取り込む。//配列の並び順を逆転させる。//画面の真ん中の高さに写真が来るように計算。//CGRectインスタンスを作ってiamgeViewの座標とサイズを保持。//原点座標を指定し直す。pxは毎回幅分増えていく。//次の画像のX軸を画面の幅だけずらす。//scrollViewの初期位置を右端の画像に合わせる。recreated.}//AutoLayoutでscrollViewのサイズが決定してから計算しないとおかしくなるのでここで処理。imageView.frame//scrollViewの幅に合わせて高さを計算し幅と高さを入力。setupScrollImages(){//配列を作って、scrollViewに貼り付けられたsubviewの画像を取り込む。scrollView.subviews//配列の並び順を逆転させる。0){//画面の真ん中の高さに写真が来るように計算。imgView.frame.height)/2//CGRectインスタンスを作ってiamgeViewの座標とサイズを保持。imgView.frame//原点座標を指定し直す。pxは毎回幅分増えていく。viewFrame//次の画像のX軸を画面の幅だけずらす。scrollPageHeight)//scrollViewの初期位置を右端の画像に合わせる。1)//2}}1の時点でのイメージはこんな感じ。contentSizeはまだ指定していないので存在しないか(0,0)なので画面は動きません。最終的に起動した時のイメージは2でこんな感じ。contentSizeの範囲をflameの幅で左右にページ移動します。一応こんな感じでscrollViewが使えました。【Swift4】効果音のクラスを作ってみた。【Swift4】tabbarとnavigationControllerを使ってる時のマイナーな?戻り方。コメントをキャンセルメールアドレスが公開されることはありません。data-url="">アイビー・リーの25,000$のアイデア。夢を100個書きだそう。【Swift5】UIPickerViewで2列のピッカーを作る。【Swift4】レビューのリクエストをする。View】広告を消したり表示したりする。AdMob用に新しいアプリIDとユニットIDを取得する。