* 当控件通过代码创建时,就会调用这个方法
* 当控件通过代码创建时,想做一些初始化操作。应该在这个方法中执行
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
[self setup];
// 添加子控件代码
}
return self;
}
/**
* 当控件是通过xib\storyboard创建时,会调用这个方法来初始化控件
*/
- (id)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder]) {
}
return self;
}
/**
* 当控件从xib\storyboard中创建完毕时,就会调用这个方法
* 当控件从xib\storyboard中创建完毕后的初始化操作。应该在这个方法中执行
*/
- (void)awakeFromNib
{
[self setup];
}
/**
* 初始化代码
*/
- (void)setup
{
self.scrollView.backgroundColor = [UIColor redColor];
}
/**
* 当控件的尺寸发生改变的时候,会自动调用这个方法
*/
- (void)layoutSubviews
{
[super layoutSubviews];
// 设置scrollView的frame
self.scrollView.frame = self.bounds;
// 获得scrollview的尺寸
CGFloat scrollW = self.scrollView.frame.size.width;
CGFloat scrollH = self.scrollView.frame.size.height;
// 设置pageControl
CGFloat pageW = 100;
CGFloat pageH = 20;
CGFloat pageX = scrollW - pageW;
CGFloat pageY = scrollH - pageH;
self.pageControl.frame = CGRectMake(pageX, pageY, pageW, pageH);
// 设置内容大小
self.scrollView.contentSize = CGSizeMake(self.imageNames.count * scrollW, 0);
// 设置所有imageView的frame
for (int i = 0; i<self.scrollView.subviews.count; i++) {
UIImageView *imageView = self.scrollView.subviews[i];
imageView.frame = CGRectMake(i * scrollW, 0, scrollW, scrollH);
}
}