YBPageControl.m 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //
  2. // YBPageControl.m
  3. // live1v1
  4. //
  5. // Created by IOS1 on 2019/4/2.
  6. // Copyright © 2019 IOS1. All rights reserved.
  7. //
  8. #import "YBPageControl.h"
  9. @implementation YBPageControl
  10. #define dotW 6
  11. #define activeDotW 4
  12. #define margin 5
  13. - (void)layoutSubviews
  14. {
  15. [super layoutSubviews];
  16. //计算圆点间距
  17. CGFloat marginX = margin + 5;
  18. //计算整个pageControll的宽度
  19. // CGFloat newW = (self.subviews.count - 1 ) * marginX;
  20. // //设置新frame
  21. // self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, newW, self.frame.size.height);
  22. //
  23. // //设置居中
  24. // CGPoint center = self.center;
  25. // center.x = self.superview.center.x;
  26. // self.center = center;
  27. //遍历subview,设置圆点frame
  28. for (int i=0; i<[self.subviews count]; i++) {
  29. UIImageView* dot = [self.subviews objectAtIndex:i];
  30. //[dot setFrame:CGRectMake((_window_width-dotW*self.subviews.count)/2+i * marginX, dot.frame.origin.y, dotW, dotW)];
  31. if (@available(iOS 14.0,*)) {
  32. [dot mas_remakeConstraints:^(MASConstraintMaker *make) {
  33. make.width.height.mas_equalTo(dotW);
  34. make.left.equalTo(self).offset((self.width-dotW*self.subviews.count)/2+i * marginX);
  35. make.centerY.equalTo(self);
  36. }];
  37. }else {
  38. [dot setFrame:CGRectMake((self.width-dotW*self.subviews.count)/2+i * marginX, dot.frame.origin.y, dotW, dotW)];
  39. }
  40. }
  41. }
  42. //重写setCurrentPage方法,可设置圆点大小
  43. - (void) setCurrentPage:(NSInteger)page {
  44. [super setCurrentPage:page];
  45. for (NSUInteger subviewIndex = 0; subviewIndex < [self.subviews count]; subviewIndex++) {
  46. UIImageView* subview = [self.subviews objectAtIndex:subviewIndex];
  47. CGSize size;
  48. size.height = 6;
  49. size.width = 6;
  50. [subview setFrame:CGRectMake(subview.frame.origin.x, subview.frame.origin.y,
  51. size.width,size.height)];
  52. }
  53. }
  54. @end