🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

862閲覧

scrollViewのページングを一定条件の下、前後のページに行けないようにしたい

keroto

総合スコア12

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2021/03/01 15:17

編集2021/03/01 15:19

前提・実現したいこと

swiftを用いて、iPhoneの写真アプリを作成してまして、写真を開いて左右にスワイプすることで前後の写真をみれる機能を実装しようとしております。
その中で、画像をズームしている場合は、scrollViewのページ移動ができないようにし、画像がズームされていない場合のみscrollViewの前後のページに行けるようにしたいのですが、このようにscrollViewにて一定条件下でページングを止めることは可能でしょうか。
(scrollViewのsubviewにscrollViewを、その配下のimageViewを入れることで、各ページの画像表示・拡大・画像内の移動を実現しております。)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mskRR

2021/03/01 20:33

pageViewControllerなんかではdataSourceにnilを突っ込んだりするけど、scrollViewってdelegateあったっけ? あったらnil突っ込んでみるとどうなりますか?
keroto

2021/03/02 00:54

ズーム時にdelegateをnilにすると、contentSizeは変わらないため?、ページは変わらず移動できる一方で、delegateがnilになったことでズームアウトができなくなってしまいますね...
errolizer

2021/03/02 12:42

質問の答えではなく私の感想ですが、複数の写真をUIScrollViewで扱うとメモリがすぐ足りなくなると思います。縮小して表示するのであれば数枚は並べられると思いますが、ズーム機能を入れるならある程度の画素数にして表示したいでしょうし。 また、画像をズームしている場合でもページ移動できる仕様の方が一般的ではあります。 あくまでも私の感想ですので無視しちゃってOKです汗
keroto

2021/03/03 02:16

アドバイスありがとうございます! 一般的に「アルバム内の複数の画像を、拡大表示された画像をスワイプしていくことで確認していける」ような機能を実装する場合は、UIScrollViewを用いずにどのように実装するものなのでしょうか? 参考までにお伺いできますと大変助かります...!
errolizer

2021/03/03 02:32

普通はUIPageViewControllerを使います。これは UITableViewや UICollectionViewと同様にViewをリサイクルしてメモリを節約する仕組みになっています。 前後2枚と合わせて合計3枚の画像しかメモリに置かないので画像がたくさんあっても大丈夫です。 UIScrollViewだと条件によっては 5枚程度でもクラッシュするかと思います。
keroto

2021/03/03 02:58

そうなのですね、ありがとうございます!
guest

回答1

0

ベストアンサー

親のscrollView.isScrollEnabledをfalseにすると親のスクロールが拒否されると思います。

投稿2021/03/02 02:03

Ranford

総合スコア64

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keroto

2021/03/03 02:13

親scrollViewのisScrollEnabledをfalseにすることで、無事想定の挙動ができました! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問