如果在UIViweController直接添加 UIPageControl 则需要宽度
中间的小圆点会自动居中,一般设置屏幕宽度
UIPageControl *td = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 0, 300, 20)];
td.center = self.view.center;
td.numberOfPages = 4;
td.backgroundColor = [UIColor redColor];
[self.view addSubview:td];
而在独立的UIView中,除了在
-(instancetype)initWithFrame:(CGRect)frame 视图中 可以将宽度设置为0之外
其它地方都要设置屏宽
这就是我们常说的苹果爸爸在背后搞的一些小动作,
//
// PhotoGalleryView.m
// UIPageController
//
// Created by Larry on 26/07/2017.
// Copyright © 2017 Larry. All rights reserved.
//
#import "PhotoGalleryView.h"
@interface PhotoGalleryView()
@property (nonatomic, strong) UIPageControl *pageControl;
@property (nonatomic,strong) UIView *GalleryWindow;
@end
@implementation PhotoGalleryView
-(instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.backgroundColor = [UIColor purpleColor];
// [self addSubview:self.GalleryWindow];
//------------------- 如果在此处添加_pageControl,则宽度应该设置为0,如果设置为屏宽则是不行的
[self addSubview:self.pageControl];
}
return self;
}
-(UIView *)GalleryWindow {
if(!_GalleryWindow) {
_GalleryWindow = [[UIView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 150)];
_GalleryWindow.backgroundColor = [UIColor orangeColor];
}
return _GalleryWindow;
}
-(UIPageControl *)pageControl {
if (!_pageControl) {
_pageControl = [[UIPageControl alloc] init];
_pageControl.frame = CGRectMake(0, CGRectGetMaxY(self.GalleryWindow.frame) + 20, 0, 20);
_pageControl.currentPage = 0;
_pageControl.numberOfPages = 5;
_pageControl.backgroundColor = [UIColor blueColor];
[self addSubview:_pageControl];
}
return _pageControl;
}
-(void)layoutSubviews {
//------------------- 如果在此处添加_pageControl,则宽度应该设置为屏幕宽度 ,如果设置为0 则是不行的
// [self addSubview:self.pageControl];
}
@end
ProjectName : UIPageController