YMCaptchaTextFlowLayout.m 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //
  2. // YMCaptchaTextFlowLayout.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2023/5/5.
  6. //
  7. #import "YMCaptchaTextFlowLayout.h"
  8. @implementation YMCaptchaTextFlowLayout
  9. - (instancetype)init{
  10. if (self = [super init]) {
  11. [self initPara];
  12. }
  13. return self;
  14. }
  15. - (void)initPara{
  16. self.ifNeedEqualGap = YES;
  17. self.minLineSpacing = 10;
  18. self.minimumLineSpacing = 0;
  19. self.minimumInteritemSpacing = 0;
  20. self.sectionInset = UIEdgeInsetsZero;
  21. self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
  22. self.itemNum = 1;
  23. }
  24. - (void)prepareLayout{
  25. if (_ifNeedEqualGap) {
  26. [self autoCalucateLineSpacing];
  27. }
  28. [super prepareLayout];
  29. }
  30. - (void)autoCalucateLineSpacing{
  31. if (self.itemNum > 1) {
  32. CGFloat width = CGRectGetWidth(self.collectionView.frame);
  33. self.minimumLineSpacing = floor(1.0 * (width - self.itemNum * self.itemSize.width - self.collectionView.contentInset.left - self.collectionView.contentInset.right) / (self.itemNum - 1));
  34. if (self.minimumLineSpacing < self.minLineSpacing) {
  35. self.minimumLineSpacing = self.minLineSpacing;
  36. }
  37. }else{
  38. self.minimumLineSpacing = 0;
  39. }
  40. }
  41. @end