ইউআইকোলিকেশনভিউ'র সেলফর্ম আইটেমটিডেক্সপথ কল করা হচ্ছে না


104

কেবলমাত্র আমার দ্বিতীয়বার ইউআইকোলিকেশনভিউ ব্যবহার করে এবং সম্ভবত আমি যতটা চিবিয়ে দিতে পারি তার চেয়ে বেশি কামড়ে ফেলেছি তবুও:

আমি এমন একটি ইউআইকোলিকেশনভিউ (মাই কোলেকশনভিউ) বাস্তবায়ন করছি যা আমি সাবক্ল্যাসড করেছি এমন কাস্টম ইউআইসি কলিকেশনভিউসেল ব্যবহার করে। সাবক্ল্যাসড সেল (ফুলআরসিপিটসেল) এ ইউআইটিবেল ভিউ থাকে এবং এটি ভিউকন্ট্রোলারের আকার। আমি ফুলসিপিটসেলগুলির মধ্যে অনুভূমিক স্ক্রোলিংয়ের অনুমতি দেওয়ার চেষ্টা করছি।

মাই ক্লেকশনভিউ রয়েছে এমন সাবক্ল্যাসড ইউআইসিএল্লেশনভিউকন্ট্রোলারকে ন্যাভ কন্ট্রোলার স্ট্যাকের দিকে ঠেলে দেওয়া হচ্ছে। বর্তমানে, মাই ক্লেকশনভিউ লওস এবং অনুভূমিক স্ক্রোলিং সক্ষম রয়েছে। তবে কোনও কোষ দৃশ্যমান নয়। আমি তা নিশ্চিত করেছি

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section

চালিয়েছে এবং ০ এর চেয়ে বড় পূর্ণসংখ্যা ফেরত দিচ্ছে I

কোষটি লোড করার পদ্ধতিটি:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

বলা হচ্ছে না।

এখানে আমি সেই নিয়ন্ত্রকের মধ্যে ইউআইকোলিকেশনভিউ কনট্রোলার এবং আমার ভিউডিডলড পদ্ধতিটি ধাক্কা দিয়েছি (দ্রষ্টব্য: ইনটুইলবিলটি সাধারণ প্রাথমিকের একটি ওভাররাইড):

পূর্ববর্তী ভিউকন্ট্রোলার্স এম ফাইলগুলিতে:

FullReceiptViewController *test = [[FullReceiptViewController alloc] initWithBill:currentBill];
test.title = @"Review";
[self.navigationController pushViewController:test animated:YES];

ফুলআরসিপটভিউকন্ট্রোলআরএম তে:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    [self.myCollectionView registerClass:[FullReceiptCell class] forCellWithReuseIdentifier:@"FullReceiptCellIdentifier"];
    self.myCollectionView.pagingEnabled = YES;
    // Setup flowlayout

    self.myCollectionViewFlowLayout = [[UICollectionViewFlowLayout alloc] init];
    [self.myCollectionViewFlowLayout setItemSize:CGSizeMake(320, 548)];
    [self.myCollectionViewFlowLayout setSectionInset:UIEdgeInsetsMake(0, 0, 0, 0)];
    [self.myCollectionViewFlowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
    self.myCollectionViewFlowLayout.minimumLineSpacing = 0;
    self.myCollectionViewFlowLayout.minimumInteritemSpacing = 0;
    [self.myCollectionView setCollectionViewLayout:myCollectionViewFlowLayout];
    //testing to see if the collection view is loading
    self.myCollectionView.backgroundColor = [UIColor colorWithWhite:0.25f alpha:1.0f];

কেন এটি বলা হচ্ছে না সে সম্পর্কে কোনও সূত্র?


আমি এক্সআইবি ব্যবহার করছি। আমি সেলফোর্ডআইটেমসআইটিএন্ডেক্সপ্যাথের কোনও কিছুরই সন্ধান করতে পারি না কারণ এটি কখনই কল হয় না।
IkegawaTaro

উত্তর:


135

যারা পরে এখানে হোঁচট খাচ্ছেন তাদের জন্য .... কারণ:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

কল করা হয়নি কারণ সংগ্রহের আইটেম সাইজের কারণে ভিউফ্লোএলআউটের উচ্চতা খুব বেশি ছিল।

[self.myCollectionViewFlowLayout setItemSize:CGSizeMake(320, 548)];

যদি আমি উচ্চতাটি 410 এ পরিবর্তন করি তবে এটি সেলফোরটাইমএটিএন্টেক্সপথ কার্যকর করবে।


আপনি কি আরও কিছু ব্যাখ্যা করতে পারেন। আমার জন্য একই হচ্ছে
ব্যবহারকারী 1010819

আমি সবেমাত্র আবিষ্কার করেছি যে আপনাকে
ভিউকন্টেন্টসাইজও

49
আপনি যদি অটোলেআউট ব্যবহার করছেন - কালেকশনভিউতে কোনও উচ্চতার সীমাবদ্ধতা নির্ধারণ করতে ভুলবেন না - এটিতে বেশ কয়েক ঘন্টা নষ্ট হয়!
বিপিএন

রেকর্ড উচ্চতার প্রতিবন্ধকতা আমার পক্ষে কাজ করে নি .. অনুভূমিক কেন্দ্রের
বাঁধাগুলি

4
যদি আপনার সংগ্রহভিউটি অটোলাউট সহ শীর্ষে লেআউটগুইডে সীমাবদ্ধ থাকে এবং নেভিগেশনবারের অধীনে স্ক্রোল করার কথা না Adjust Scroll View Insetsহয়, তবে স্টোরিবোর্ডে আপনার ভিউকন্ট্রোলারটি আনচেক করার বিষয়টি নিশ্চিত করুন।
ব্রুনো গালিনারি

96

আমার ক্ষেত্রে, এটি ছিল কারণ আমার লেআউট ক্লাসটি ভুলভাবে UICollectionViewLayoutপরিবর্তে সাবক্ল্যাস করা হয়েছিলUICollectionViewFlowLayout


1
ধন্যবাদ. আমাকে এলোমেলো আমি যুগে যুগে কাটিয়েছি।
রমবাতিনো

এটি আমার সমস্যাও ছিল! এটি সামান্য বিপরীতমুখী, তাই এটি আমার কাছে ঘটেনি। এর জন্য ধন্যবাদ!
ওয়েন্দিকিড

আমার জন্যও একই! এটি উপেক্ষা করা এত সহজ! আবারও ধন্যবাদ
arvidurs

এখানে ফেসপালম, এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ (4 বছর আগে)
মিল্যান্ডার

আমি একই সমস্যা ছিল। ধন্যবাদ
পীযূষ গুপ্ত

31

আপনি যদি কালেকশন ভিউতে কন্টেন্ট সাইজের তথ্য না সরবরাহ করেন তবে সেলফোর্ডআইটেমটেক্সপথ কল হবে না।

  1. আপনি যদি ফ্লো লেআউট ব্যবহার করছেন : আপনার আইটেমের আকারগুলি সঠিকভাবে সেট করতে হবে।
  2. আপনার যদি ইউআইকোলিকেশনভিউলাউআউট থেকে একটি কাস্টম বিন্যাস উপ-শ্রেণীবদ্ধ থাকে : নিশ্চিত করুন যে আপনি সংগ্রহভিউ কনটেন্টটাইজ পদ্ধতিটি থেকে সঠিক আকারটি ফিরিয়ে দিচ্ছেন।

দ্বিতীয়টির ক্ষেত্রে, আপনি এটিও পর্যবেক্ষণ করতে পারবেন যে আপনার বিন্যাসআট্রিবিউটস ফরমেটেনসেক্টও বলা হয় নি। কারণটি হ'ল আপনি আপনার সামগ্রীর আকার কী তা নির্দিষ্ট করেন নি এবং ডিফল্টরূপে আকারটি হবে সিজিসিজেজেরো। এটি মূলত সংগ্রহ ভিউকে বলে যে আপনার আঁকার কোনও সামগ্রী নেই তাই এটি আপনাকে গুণাবলী বা কোষগুলির জন্য জিজ্ঞাসা করে না।

সুতরাং, কেবল সংগ্রহ ভিউ কনটেন্টসাইজকে ওভাররাইড করুন এবং সেখানে একটি সঠিক আকার সরবরাহ করুন, এটি আপনার সমস্যার সমাধান করা উচিত।


1
উদাহরণস্বরূপ, সম্পূর্ণ উপলভ্য আকারটি ব্যবহার করার জন্য,
অ্যাডাম প্রেমময়

ধন্যবাদ! এই উত্তরটি আমাকে সাহায্য করেছে খ / সি আমার একটি কাস্টম ইউআইকোলিকেশনভিউলয়আউট। যদি আমি ল্যান্ডস্কেপ ওরিয়েন্টেশনে সিমুলেটারে অ্যাপটি চালু করে থাকি তবে কিছু কক্ষ প্রাথমিক দৃষ্টিতে উপস্থিত হচ্ছিল না। সামগ্রীর আকারকে ওভাররাইড করা আমার জন্য এই সমস্যাটি স্থির করেছে।
ক্রিস লিভডাহাল

1
ধন্যবাদ. আমার ক্ষেত্রে collectionViewContentSizeভুলভাবে প্রস্থের জন্য 0 ফিরে এসেছে, এজন্যই cellForItemAtIndexPathডাকা হচ্ছে না।
ইজারিক

16

হতে পারে আমি কেবল এটি উপেক্ষা করছি, তবে এটি আপনার প্রতিনিধি এবং ডেটা উত্স হারিয়েছে বলে মনে হচ্ছে। আপনার শিরোনাম ফাইলটিতে নিশ্চিত হয়ে নিন যে আপনি এগুলি যুক্ত করেছেন:

<UICollectionViewDelegate, UICollectionViewDataSource>

এবং আপনার ভিউডিডলড পদ্ধতিতে এটি যুক্ত করুন:

self.myCollectionView.delegate = self;
self.myCollectionView.dataSource = self;

এছাড়াও, আপনি যদি এটি একটি .xib এর মাধ্যমে লোড করে চলেছেন তবে নিশ্চিত হয়ে নিন যে আপনি আইবিআউটলেটটি ইউআইকোলিকেশনভিউয়ের সাথে সংযুক্ত আছেন।


1
আমি এটি দেখায় নি তবে শিরোনাম ফাইলে আমার কাছে ইতিমধ্যে ডেলিগেট এবং ডেটাসোর্স উল্লেখ আছে। অতিরিক্তভাবে, আমি আইওআউটলেটটি আমার কলিকেশনভিউতে তারযুক্ত করেছি। এই সংগ্রহ দর্শনের জন্য প্রতিনিধি এবং ডেটাসোর্স ফুলআরসিপটিভিউ কনট্রোলারকে সেট করা হয়েছে। আশ্চর্যের বিষয়টি হ'ল নাম্বার অফিশম ইনসেকশন (একটি ডেটাসোর্স প্রোটোকল পদ্ধতি) কল করা হচ্ছে এবং 0 এর চেয়ে বড় একটি পূর্ণসংখ্যার ফিরিয়ে
দিচ্ছে

হুঁ, আপনি অ্যাপ্লিকেশনটি চালু করার সময় সংগ্রহটি দেখায় বা কিছু করে? এটা তোলে শোনাচ্ছে যদি numberOfItemsInSection কিছু বৃহত্তর ফেরৎ 0. চেয়ে মত এটা কিছু আইটেম আছে
এন্থনি Castelli

অনুসরণ করার জন্য ধন্যবাদ। সংগ্রহের দৃশ্যটি দেখায় ... আমি বলতে পারি কারণ আমি পটভূমির রঙ পরিবর্তন করেছি। আমি বিশ্বাস করি যে আমি এই সমস্যাটি পেয়েছি: [সেলফাইমাইগ্রেশনভিউফ্লোলয়আউট সেট আইটেম সাইজ: সিজি সাইজমেক (320, 548)]; এটি খুব বড় ছিল। যদি আমি উচ্চতা হ্রাস করে 410 হয়, আমি সেলফোর্ডআইটেমটাইডেক্সপথ পদ্ধতিটি কল করতে পারি।
IkegawaTaro

@ অ্যান্টনি ক্যাসেটেলি হ্যালো, আমিও একই সমস্যাটির মুখোমুখি হচ্ছি, নাম্বার অফফর্মস ইনসেকশনটি পপ থেকে ভিউকন্ট্রোলারে কল করা হয়েছে কিন্তু সেলফোরআইটেমসআইটিএন্ডেক্সপথ নয়। সুতরাং আপনি কি ক্লু পেতে পারি?
ভাভিন কংসাগর

16

আরও জটিল ভিউয়ের জন্য এই ব্লগটি চেক করুন । এটা আমার জীবন বাঁচায়!

self.automaticallyAdjustsScrollViewInsets = NO;

1
আমি এটিতে এতটা সময় ব্যয় করেছি - এবং এটি সব নেমে এসেছিল। স্টোরিবোর্ড বা এক্সআইবি ব্যবহার করে, প্যারেন্ট ভিউ কন্ট্রোলারের দিকে তাকান এবং অ্যাট্রিবিউট ইন্সপেক্টরটিতে "অ্যাডজাস্ট স্ক্রোল ভিউ ইনসেটগুলি" নির্বাচন করুন যা ডিফল্টরূপে চালু করা হয় de আমি অন্যান্য সমস্ত উত্তর চেষ্টা করেছিলাম এবং সেগুলি কার্যকর হয়নি, এটি এখানে এসেছিল।
এটাইলুজ

15

যদি আপনার ক্লাসটি ইউআইসিএল্লেশনভিউকন্ট্রোলার থেকে সাবক্লাস হয় এবং আপনি সংগ্রহটিভিউ তৈরি করে থাকেন তবে প্রোগ্রামটিভ্যালি ব্যবহার করুন

let layout = UICollectionViewFlowLayout()
    layout.scrollDirection = .Vertical
    layout.itemSize = CGSizeMake(50, 50)

    collectionView?.setCollectionViewLayout(layout, animated: false)

এই উত্তর আমার সমস্যা সমাধান! ওভাররাইড পদ্ধতিতে ফানক সংগ্রহ ভিউ (_ সংগ্রহ ভিউ: ইউআইকোলিকেশনভিউ, লেআউট সংগ্রহ ভিউলয়আউট: ইউআইকোল্লেশনভিউলয়আউট, সাইজফর্ম আইটেম্যাট ইনডেক্সপথ: ইনডেক্সপথ) -> সিজি সাইজ {<# কোড #>। আমার পক্ষে কাজ করে না।
মাইক

8

আমি অটোলেআউট ব্যবহার করছিলাম এবং আমার ক্ষেত্রে উচ্চতার প্রতিবন্ধকতা অনুপস্থিত


6

আমার সমস্যাটি ছিল আমার একই ভিউতে 2 টি সংগ্রহের ভিউ ছিল এবং উভয়ই একটি গণিত UICollectionViewFlowLayoutউদাহরণ ভাগ করে নিচ্ছিল । একবার আমি একই প্রবাহের বিন্যাসের পৃথক দৃষ্টান্ত তৈরি করলে, এটি দুর্দান্ত কাজ করেছিল।


5

আমার ক্ষেত্রে, আমি যা করতে খুব বোকামি করে ভুলে গিয়েছিলাম তা হ'ল UICollectionViewDataSourceপ্রোটোকল পদ্ধতিটি বাস্তবায়ন করা numberOfItemsInSection, তাই এটি যাচাই করা অন্য জিনিস।


4

এছাড়াও, নিশ্চিত হয়ে নিন যে সংগ্রহ ভিউ অ্যানিমেশনের সাথে আপডেট করার সময় পুনরায়লোডডাটা কল করা হবে না (সন্নিবেশ করান, মুছুন, আপডেট করুন বা সম্পাদনাব্যাচআপেটস)।


4

আমার ক্ষেত্রে সেট collectionView.prefetchingEnabled = NO;আমার সমস্যার সমাধান করুন। শুধুমাত্র আইওএস 10 এ কাজ করে।


2
আমি এই উত্তরটি কিছুদিন আগে উন্নীত করেছিলাম এবং আজ এটি আবার আমাকে সহায়তা করেছে: ডি এই উত্তর লোকটির জন্য আপনি একজন মহৎ প্রাপ্য। আবার ধন্যবাদ!
ম্যাকিক জার্নিক

এই উত্তরটি আমার পক্ষে কাজ করেছে! আমি এটির সাথে কেন অন্তর্ভুক্ত হয়েছিল সে সম্পর্কে কোনও ব্যাখ্যা থাকলাম কারণ এটির শুরুটি আমার কখনই সত্য হয়নি।
ল্যান্স সামেরিয়া

3

যখন আইটেমের উচ্চতা == 0 সেট করে ঠিক করা হয়েছিল যে সেলফোরটাইম পদ্ধতিটি কল করা হয়েছিল তখন এটি আমার জন্য ঘটছিল।


3

দশ মিনিট আগে আমিও এই সমস্যার মুখোমুখি হয়েছি, আমি একটি নির্বোধ ভুল করেছি।

আমার উদ্দেশ্য হ'ল ইউআইকোলিকেশনভিউফ্লোলোআউটটি ব্যবহার করা,

তবে ভুলের কারণে, আমি ইউআইকোলিকেশনভিউলয়আউট ব্যবহার করেছি।


3

আমার ক্ষেত্রে, ইউআইএনএভিগেশনবারের আড়াআড়িটি NO এ পরিবর্তন করা সমস্যার সমাধান করেছে।


3

এক্সকোড .0.০.১-এ, আমরা যখন অন্য কোনও প্রকল্পের স্টোরিবোর্ড এবং তার সাথে কোডটি অনুলিপি করেছিলাম তখন আমরা এই সমস্যাটি পেয়েছি। সংগ্রহের ভিউটিতে স্টোরিবোর্ডে একটি কাস্টম ফ্লো লেআউট সেট ছিল। সমাধানটি ছিল:

  • আইবিতে প্রবাহ বিন্যাস সরান
  • সংকলন / অ্যাপ্লিকেশন চালান
  • ফ্লো লেআউটটি পিছনে সেট করুন

এখন এটি কাজ করেছে :)


2

নিশ্চিত করুন যে numberOfSectionsInCollectionViewইতিবাচক পূর্ণসংখ্যারও প্রত্যাবর্তন হয়েছে।

সংগ্রহে কমপক্ষে একটি বিভাগ থাকতে হবে।


2

নিশ্চিত করুন - (এনএসআইন্টার) সংগ্রহ ভিউ: নম্বরঅফিটসআইএনসেকশন: একটি পজিটিভ (শূন্যের চেয়ে বড়) পড়ছে returning এটি [সেল্ফ কন্টিকেশনভিউ রিলোডডাটা] রাখার বিষয় হতে পারে; সম্পূর্ণরূপে হ্যান্ডলার


2

আমি সংগ্রহের ভিউটিতে অটোরিসাইজিং মাস্কটি মিথ্যাতে সেট করতে ভুলে গেছি:

collectionView.translatesAutoresizingMaskIntoConstraints = false

2

এটি লেআউট সমস্যা সম্পর্কিত করা যেতে পারে can উপস্থিত থাকলে কনসোল থেকে বিন্যাসের সতর্কতাগুলি পরীক্ষা করুন।


2

আমার ক্ষেত্রে সংগ্রহের দর্শনটি ভুল স্বতঃ বিন্যাসের সীমাবদ্ধতার কারণে তার পিতামাতার ভিউতে পুরোপুরি দৃশ্যমান ছিল না। সুতরাং সীমাবদ্ধতাগুলি স্থির করে সংগ্রহটি সমস্ত দৃশ্যকে দৃশ্যমান করে তোলে এবং সেলফোরআইটেমটাইডেক্সপথ কল করা হয়েছিল।


2

স্টোরিবোর্ডে / xib ইউআইকোলিকেশনভিউ প্রোপার্টি সেলসাইজ {0, 0 not হওয়া উচিত নয়


2

আপনি সংগ্রহ দৃশ্য প্রোটোকল ব্যবহার করেন, তাহলে আপনি সংযোগ আবশ্যক CollectionViewDataSourceএবং CollectionViewDelegateআপনার ViewController প্রটোকল। ইন্টারফেস বিল্ডার আউটলেট


1

আমার ক্ষেত্রেও তাই হয়েছিল। আমার 2 টি ইউআইসি ক্লেকশনভিউ ছিল এবং আমার একবারের প্রয়োজন নেই বলে আমি একবার সরিয়ে ফেললাম। এর পরে আমি বুঝতে পেরেছিলাম যে সেলফোর্ডআইটেমটাইজেক্সপথ কল হচ্ছে না তবে অন্যান্য প্রয়োজনীয় পদ্ধতিগুলি রয়েছে। আমি উপরের সমস্ত চেষ্টা করেছিলাম কিন্তু তারপর আমি স্ট্যান্ডার্ড যাদু করেছি। স্টোরিবোর্ড থেকে সংগ্রহের ভিউ সরিয়ে আবার যুক্ত করা হয়েছে। তারপরে এটি কাজ শুরু করে। কেন জানি না এবং আমার কোনও ব্যাখ্যা নেই তবে সংযোগের কিছু সমস্যা রয়েছে।


আমি স্টোরিবোর্ডে অন্য ইউআইভিউকন্ট্রোলার থেকে আমার ইউআইসিএল্লেশনভিউটি অনুলিপি করেছি। আমি কালেকশনভিউটি মুছলাম এবং এটিকে কাজ করতে আবার যুক্ত করেছি। আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ।
মাতাল বাবা

1

কিছুটা নির্দিষ্ট পরিস্থিতির জন্য কেবল এই সমস্যাটি সমাধান করুন resolved

আমার ক্ষেত্রে, আমি প্যারেন্ট ভিউ কনট্রোলারটিতে ম্যানুয়ালি ইউআইকোল্লেশনভিউ কনট্রোলারটি আরম্ভ করছিলাম এবং তারপরে ইউআইসিএল্লেশনভিউকন্ট্রোলারের দৃশ্যটিকে একটি সংক্ষিপ্তসার হিসাবে যুক্ত করেছি।

আমি পিতামাতার দৃশ্যের মধ্যে ভিউ সংগ্রহেভিউতে 'সেটনিডস লেআউট' এবং / অথবা 'সেটনিডসডস্প্লে' কল করে সমস্যাটি সমাধান করেছি id

- (void)viewDidAppear:(BOOL)animated {
   [super viewDidAppear:animated];
   [_collection.view setNeedsLayout];
   [_collection.view setNeedsDisplay];
}

1

যখন ব্যবহার UICollectionViewDelegateFlowLayoutকি এই ফাংশন আয় সতর্কতা অবলম্বন করা আবশ্যক। উভয় widthএবং এর heightচেয়ে বড় হওয়া উচিত 0। আমি windowফ্রেম রেফারেন্স হিসাবে ব্যবহার করেছি তবে জটিল দেখার কারণে ক্রমবর্ধমান উইন্ডোটি nilরানটাইমের সময় ছিল । আপনার যদি প্রয়োজন হয় স্ক্রিন প্রস্থ ব্যবহারের উপর ভিত্তি করে উপাদানটির প্রস্থ সামঞ্জস্য করুন UIScreen.main.bounds

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: 
           UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {}

1

আমার ক্ষেত্রে আমি ছিল collectionViewএকটি UIStackViewসঙ্গে alignment = .center। সুতরাং collectionViewএকটি প্রস্থ ছিল না। যখন সেট করার stackView.alignmentজন্য .fillসবকিছু ঠিক ছিল।


0

আমার জন্য, আমি অটোলেআউটের মাধ্যমে সেল্ফ.ভিউয়ের (কালেকশনভিউর সুপারভিউ) উচ্চতা এবং তার পরে কলটি আপডেট করব layoutIfNeeded

[self.view mas_updateConstraints:^(MASConstraintMaker *make) {
    make.height.equalTo(@(height));
}];
[self.view layoutIfNeeded];

0

আমার ক্ষেত্রে আমাকে আনুমানিক সামগ্রীর আকার সামঞ্জস্য করতে হয়েছিল। সামগ্রীর আকার এটি করেনি।

  let layout = collectionVC.collectionView.collectionViewLayout as! UICollectionViewFlowLayout
    layout.itemSize = CGSize(width: 100, height: 100)
    layout.estimatedItemSize = CGSize(width: 100, height: 100)

0

আমারও তেমন সমস্যা ছিল। পরিবর্তে cellForItemAtIndexPathযখন আইটেমের সংখ্যা> 1 ছিল তখন ডাকা হয়েছিল, কিন্তু যখন কেবলমাত্র একক আইটেম ছিল না। আমি এখানে প্রস্তাবিত অনেকগুলি সমাধান চেষ্টা করেছিলাম এবং অনেকের মতোই আমি দেখতে পেলাম যে এটি আইটেম সাইজিংয়ের সাথে করা উচিত। আমার জন্য সমাধান অনুমান আকার পরিবর্তন ছিল UICollectionViewথেকে স্বয়ংক্রিয় করার কাস্টম

আনুমানিক আকার কাস্টম সেট করুন


-1

একটি স্টোরিবোর্ড থেকে লোড করা একটি ধারণিত ভিউ কন্ট্রোলারে একটি কালেকশন ভিউয়ের সাথে এই সমস্যাটি আসার সাথে আমি কিছুটা সময় ডুবে গিয়েছি। আমি কেবল অন্তর্ভুক্ত ভিউ কন্ট্রোলারটিকে মুছে ফেলা এবং স্টোরিবোর্ডে এটি পুনরুদ্ধার করে শেষ করেছি এবং এটি সমস্যা থেকে মুক্তি পেয়েছে বলে মনে হচ্ছে। আমার ধারণা এখানে কোনওরকম স্টোরিবোর্ড দুর্নীতি হয়েছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.