ঠিক আছে, উত্তর নেই, ইউআইকোলিকেশনভিউফ্লোলোআউটটি সাবক্লাসিং না করে এটি করার কোনও উপায় নেই।
তবে, ভবিষ্যতে যারা এটি পড়ছেন তাদের পক্ষে এটি সাবক্লাসিং অবিশ্বাস্যরকম সহজ easy
প্রথমে আমি সাবক্লাস কল সেট আপ করেছি MyCollectionViewFlowLayout
এবং তারপরে ইন্টারফেস বিল্ডারে আমি সংগ্রহের ভিউ লেআউটটিকে কাস্টমতে পরিবর্তন করেছি এবং আমার ফ্লো লেআউট সাবক্লাসটি নির্বাচন করেছি।
কারণ আপনি এটি এইভাবে করছেন আপনি আইটেমের আকারগুলি ইত্যাদি নির্দিষ্ট করতে পারবেন না ... আইবিতে তাই মাই ক্লেকশনভিউফ্লোলায়আউট.এম এ আমার আছে ...
- (void)awakeFromNib
{
self.itemSize = CGSizeMake(75.0, 75.0);
self.minimumInteritemSpacing = 10.0;
self.minimumLineSpacing = 10.0;
self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
self.sectionInset = UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0);
}
এটি আমার এবং স্ক্রোলের দিকের জন্য সমস্ত আকার নির্ধারণ করে।
তারপরে ...
- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity
{
CGFloat offsetAdjustment = MAXFLOAT;
CGFloat horizontalOffset = proposedContentOffset.x + 5;
CGRect targetRect = CGRectMake(proposedContentOffset.x, 0, self.collectionView.bounds.size.width, self.collectionView.bounds.size.height);
NSArray *array = [super layoutAttributesForElementsInRect:targetRect];
for (UICollectionViewLayoutAttributes *layoutAttributes in array) {
CGFloat itemOffset = layoutAttributes.frame.origin.x;
if (ABS(itemOffset - horizontalOffset) < ABS(offsetAdjustment)) {
offsetAdjustment = itemOffset - horizontalOffset;
}
}
return CGPointMake(proposedContentOffset.x + offsetAdjustment, proposedContentOffset.y);
}
এটি নিশ্চিত করে যে বাম হাতের প্রান্তে 5.0 এর মার্জিনের সাথে স্ক্রোলিংটি শেষ হবে।
আমার যা করা দরকার তা-ই। আমার কোডে ফ্লো লেআউট সেট করার দরকার নেই।