タグ付けされた質問 「uicollectionview」

UICollectionViewクラスは、データ項目の順序付けられたコレクションを管理し、カスタマイズ可能なレイアウトを使用してそれらを提示します。コレクションビューは、単一ビューのレイアウトだけでなく、それ以外のものもサポートできることを除いて、テーブルビューと同じ一般的な機能を提供します。コレクションビューは、複数列グリッド、タイルレイアウト、円形レイアウトなどの実装に使用できるカスタマイズ可能なレイアウトをサポートしています。iOS 6.0以降で利用可能

16
UICollectionView自動レイアウトによるセルのサイズ変更セル
UICollectionViewCells自動レイアウトでセルフサイズ設定を機能させようとしていますが、セルをコンテンツに合わせてサイズ調整できません。セルのcontentViewの内容からセルのサイズが更新される方法を理解できません。 これが私が試した設定です: contentViewにUICollectionViewCella UITextViewを含むカスタム。 のスクロールUITextViewは無効です。 contentViewの水平方向の制約は「H:| [_textView(320)]」です。つまり、これUITextViewは明示的な幅320でセルの左側に固定されています。 contentViewの垂直方向の制約は、「V:| -0-[_ textView]」、つまりUITextViewセルの上部に固定されています。 にUITextViewは、UITextViewレポートがテキストに適合する定数に設定された高さ制約があります。 セルの背景を赤に、UITextView背景を青に設定すると、次のようになります。 これまでに使用してきたプロジェクトをGitHubに配置しました。

25
UICollectionViewのセル間隔
セクションのセル間隔を設定するにはどうすればよいUICollectionViewですか?私はminimumInteritemSpacingそれを5.0に設定したプロパティがあることを知っていますが、間隔は5.0に表示されません。フローアウトデリゲートメソッドを実装しました。 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { return 5.0; } それでも望ましい結果が得られません。最小間隔だと思います。最大間隔を設定する方法はありませんか?

15
UICollectionViewの間隔マージン
UICollectionView写真を表示するを持っています。を使用してコレクションビューを作成しましたUICollectionViewFlowLayout。うまくいきますが、余白に間隔を空けたいのですが。それを使用してそれを行うことは可能ですかUICollectionViewFlowLayout、それとも自分で実装する必要がありUICollectionViewLayoutますか?

5
Swiftで単純なコレクションビューを作成する方法
使い方を学ぼうとしていますUICollectionView。ドキュメントには、理解することが少し難しいですし、私が見つけたのチュートリアルでは、Objective Cのか、長い複雑なプロジェクトでのいずれかでした。 私がの使い方を学んでいたときUITableView、私たちは ❤SwiftのiOS 8でシンプルなテーブルビューを作成する方法を教えてくれました。Swiftには、非常に基本的な設定と説明がありました。このようなものはありUICollectionViewますか? 以下の答えは、これを行うことを学ぶ私の私の試みです。

11
プログラムによるUICollectionViewの作成
コードのみを使用して簡単なUICollectionViewを設定する方法を示すガイドまたはチュートリアルを探しています。 私はApplesサイトのドキュメントを調べており、リファレンスマニュアルも使用しています。 しかし、ストーリーボードやXIB / NIBファイルを使用せずにUICollectionViewをセットアップする方法を示すことができる簡単なガイドが本当に役立つでしょう。

7
UICollectionViewのUIRefreshControlは、コレクションがコンテナーの高さを満たす場合にのみ機能します
私が追加しようとしているUIRefreshControlのUICollectionViewが、問題がコレクションビューは、親コンテナの高さをいっぱいにしない限り、リフレッシュ制御が表示されないということです。言い換えると、コレクションビューがスクロールを必要とするほど長い場合を除いて、コレクションコントロールをプルダウンして更新コントロールビューを表示することはできません。コレクションが親コンテナの高さを超えるとすぐに、コレクションがプルダウンされ、更新ビューが表示されます。 私はUICollectionView、メインビューの内側にコレクションビューへのアウトレットを備えた簡単なiOSプロジェクトを設定しました。UIRefreshControlこれにより、に追加できviewDidLoadます。再利用識別子を持つプロトタイプセルもあります。cCell これはコントローラー内のすべてのコードであり、問​​題をかなりよく示しています。このコードでは、セルの高さを100に設定しました。これは、表示を埋めるには不十分であるため、ビューをプルできず、更新コントロールが表示されません。ディスプレイを埋めるためにそれをより高い値に設定すると、機能します。何か案は? @interface ViewController () <UICollectionViewDelegateFlowLayout, UICollectionViewDataSource> @property (strong, nonatomic) IBOutlet UICollectionView *collectionView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; [self.collectionView addSubview:refreshControl]; } -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return 1; } -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { …

9
セル間隔とUICollectionView-UICollectionViewFlowLayoutサイズ比を設定する方法は?
私が追加しようとしているUICollectionViewにViewController、と私は(それがグリッドのようになります。)セル間の空白なしに「行当たり3個の」の細胞を持っている必要があります。セルの幅は画面サイズの3分の1にする必要があるので、layout.item幅は同じにする必要があると思いました。しかし、私はこれを手に入れます: そのサイズを小さくすると(たとえば、7 ピクセルまたは8ピクセルずつ)改善されますが、行の3番目のセルが完全に表示されず、その空白スペース(上下左右)が残っています。 class ViewController: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource { var collectionView: UICollectionView? var screenSize: CGRect! var screenWidth: CGFloat! var screenHeight: CGFloat! override func viewDidLoad() { super.viewDidLoad() screenSize = UIScreen.mainScreen().bounds screenWidth = screenSize.width screenHeight = screenSize.height // Do any additional setup after loading the view, typically from a nib let layout: …

15
UITableViewCell内のUICollectionView —動的な高さ?
アプリケーション画面の1つでは、のUICollectionView内部に配置する必要がありUITableViewCellます。これUICollectionViewには動的な数のアイテムがあり、動的に計算する必要がある高さになります。しかし、埋め込まれたの高さを計算しようとして問題が発生していますUICollectionView。 私たちの包括的なUIViewControllerはストーリーボードで作成され、自動レイアウトを利用しています。しかし、の高さにUITableViewCell基づいての高さを動的に増やす方法がわかりませんUICollectionView。 誰かがこれを達成する方法についていくつかのヒントやアドバイスを与えることができますか?

15
全幅セルのUICollectionViewは、自動レイアウトの動的な高さを許可しますか?
垂直ではUICollectionView、 全幅のセルを持つことは可能ですが、動的な高さを自動レイアウトで制御できますか? これは、おそらく「本当に良い答えがないiOSで最も重要な質問」だと私は思います。 重要: 99%のケースでは、全幅のセル+自動レイアウトの動的な高さを実現するには、テーブルビューを使用するだけです。とても簡単です。 では、コレクションビューが必要な場所の例は何でしょうか。 コレクションビューは、テーブルビューよりも信じられないほど強力です。 全幅のセル+自動レイアウトの動的な高さを実現するために実際にコレクションビューを使用する必要がある簡単な例: コレクションビューで2つのレイアウト間をアニメーション化する場合。たとえば、デバイスが回転するときの1列と2列の間のレイアウト。 これは、iOSで一般的で通常のイディオムです。残念ながら、それはこのQAで提起された問題を解決することによってのみ達成できます。:-/

13
FlowLayoutでUICollectionViewの高さを決定する方法
私が持っているUICollectionViewとしUICollectionViewFlowLayout、と私は(に復帰するために、そのコンテンツのサイズを計算するintrinsicContentSize自動レイアウトを経由してその高さを調整するために必要)。 問題は次のとおりです。すべてのセルの高さが固定されていても等しい場合でも、に「行」/行の数がわかりませんUICollectionView。また、データアイテムを表すセルの幅が異なり、結果としての1行にあるアイテムの数も異なるため、データソースのアイテムの数でその数を判断することもできませんUICollectionView。 公式ドキュメントでこのトピックに関するヒントを見つけることができなかったため、グーグル操作でそれ以上何もできなかったので、助けやアイデアをいただければ幸いです。

16
UICollectionView現在表示されているセルインデックス
UICollectionViewiPadアプリケーションで初めて使用しています。UICollectionViewサイズとセルサイズが同じになるように設定しました。つまり、一度に1つのセルしか表示されません。 問題: ユーザーがUICollectionViewをスクロールするときに、どのセルが表示されているかを知る必要があるので、変更時に他のUI要素を更新する必要があります。このためのデリゲートメソッドは見つかりませんでした。どうすればこれを達成できますか? コード: [self.mainImageCollection setTag:MAIN_IMAGE_COLLECTION_VIEW]; [self.mainImageCollection registerClass:[InspirationMainImageCollectionCell class] forCellWithReuseIdentifier:@"cellIdentifier"]; [self.mainImageFlowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; [self.mainImageFlowLayout setMinimumInteritemSpacing:0.0f]; [self.mainImageFlowLayout setMinimumLineSpacing:0.0f]; self.mainImageFlowLayout.minimumLineSpacing = 0; [self.mainImageCollection setPagingEnabled:YES]; [self.mainImageCollection setShowsHorizontalScrollIndicator:NO]; [self.mainImageCollection setCollectionViewLayout:self.mainImageFlowLayout]; 私が試したこと: にUICollectionView準拠しているためUIScrollView、ユーザーのスクロールがUIScrollViewDelegateメソッドで終了すると -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView しかし、上記の関数の内部で、現在表示されているセルインデックスを取得するにはどうすればよいですUICollectionViewか?

5
自動レイアウトを使用してUICollectionViewでセルの1つの次元を指定する
iOS 8では、UICollectionViewFlowLayoutは独自のコンテンツサイズに基づいてセルのサイズを自動的に変更します。これにより、セルのコンテンツに応じて、幅と高さの両方でセルのサイズが変更されます。 すべてのセルの幅(または高さ)に固定値を指定して、他の寸法のサイズを変更できるようにすることはできますか? 簡単な例として、セル内の複数行のラベルを、セルの側面に配置する制約のあるものについて考えます。複数行のラベルは、テキストに合わせてさまざまな方法でサイズ変更できます。セルはコレクションビューの幅を埋め、それに応じて高さを調整する必要があります。代わりに、セルのサイズが不規則になり、セルのサイズがコレクションビューのスクロールできないサイズよりも大きい場合に、クラッシュが発生します。 iOS 8ではメソッドが導入されてsystemLayoutSizeFittingSize: withHorizontalFittingPriority: verticalFittingPriority:います。コレクションビューの各セルについて、レイアウトはこのメソッドをセルで呼び出し、推定サイズを渡します。私にとって意味のあることは、セルでこのメソッドをオーバーライドし、指定されたサイズを渡して、水平制約を必須に設定し、優先順位を垂直制約に低く設定することです。このようにして、水平サイズはレイアウトで設定された値に固定され、垂直サイズは柔軟にすることができます。 このようなもの: - (UICollectionViewLayoutAttributes *)preferredLayoutAttributesFittingAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes { UICollectionViewLayoutAttributes *attributes = [super preferredLayoutAttributesFittingAttributes:layoutAttributes]; attributes.size = [self systemLayoutSizeFittingSize:layoutAttributes.size withHorizontalFittingPriority:UILayoutPriorityRequired verticalFittingPriority:UILayoutPriorityFittingSizeLevel]; return attributes; } ただし、この方法で返されるサイズは完全に奇妙です。このメソッドに関するドキュメントは私には非常に不明確でありUILayoutFittingCompressedSize UILayoutFittingExpandedSize、ゼロサイズとかなり大きいものを表す定数の使用について言及しています。 sizeこのメソッドのパラメーターは本当に2つの定数を渡す方法にすぎませんか?特定のサイズに適切な高さを取得するために期待する動作を実現する方法はありませんか? 代替ソリューション 1)セルに特定の幅を指定する制約を追加すると、正しいレイアウトが実現されます。この制約は、安全な参照がないセルのコレクションビューのサイズに設定する必要があるため、不適切なソリューションです。セルの構成時にその制約の値を渡すことができますが、これも完全に直観に反するようです。セルまたはそのコンテンツビューに直接制約を追加すると多くの問題が発生するため、これも厄介です。 2)テーブルビューを使用します。セルの幅は固定されているので、テーブルビューはそのままの状態で機能しますが、複数の列に固定幅のセルがあるiPadレイアウトのような他の状況には対応しません。

20
画面ではなくセルによるUICollectionViewのページング
私が持っています UICollectionView水平スクロールおり、画面全体に常に2つのセルが並んでいます。セルの先頭で停止するにはスクロールが必要です。ページングを有効にすると、コレクションビューはページ全体(一度に2セル)をスクロールし、その後停止します。 単一のセルによるスクロール、またはセルの端で停止する複数のセルによるスクロールを有効にする必要があります。 サブクラスUICollectionViewFlowLayout化してメソッドを実装しようとしましたtargetContentOffsetForProposedContentOffsetが、これまでのところ、コレクションビューを壊すことしかできず、スクロールが停止しました。これを達成する簡単な方法はありますUICollectionViewFlowLayoutか?それとも本当にサブクラスのすべてのメソッドを実装する必要がありますか?ありがとう。

8
UICollectionViewCellでの長押しジェスチャー
長押しジェスチャー認識機能をUICollectionView(のサブクラス)に追加する方法を知りたいと思っていました。私はそれがデフォルトで追加されることをドキュメントで読みましたが、私は方法を理解することができません。 私がやりたいことは、セルを長押しします(私はgithubからカレンダーを用意しています)。どの細胞が長押しされているかを知る必要があります。この幅広い質問でごめんなさい、しかし私はグーグルでもSOでももっと良いものを見つけることができませんでした

3
UICollectionViewDelegateFlowLayoutを設定する方法
UIViewControllerは、UICollectionViewへの参照を維持します。コントローラーは、UICollectionViewDelegateFlowLayoutを使用して組み込みフローレイアウトを変更する必要があります。 ビューのデータソースをselfに設定するのは非常に簡単です。 MyViewController.m - (void)viewDidLoad { self.collectionView.dataSource = self; } しかし、コントローラーをビューのデリゲートフローレイアウトに設定するにはどうすればよいですか? - (void)viewDidLoad { self.collectionView.dataSource= self; // self.collectionView.??? = self; } 私はもう試した: - (void)viewDidLoad { self.collectionView.dataSource= self; self.collectionView.collectionViewLayout = self; } しかし、「互換性のないポインタ型の割り当て...」というエラーが表示されます。 コレクションヘッダーファイルは次のようになります。 MyViewController.h @interface MyViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.