GitHub地址:https://github.com/runThor/HTScrollButton
效果:
控件内部有一个ScrollView,按钮都加在ScrollView上。
实现:
ScrollView类:
// HTButtonScrollView.h
#import <UIKit/UIKit.h>
@interface HTButtonScrollView : UIScrollView
// 在ScrollView中配置按钮
- (void)configButtons:(NSArray *)buttons;
@end
// HTButtonScrollView.m
#import "HTButtonScrollView.h"
@interface HTButtonScrollView ()
@property (nonatomic, strong) NSMutableArray *buttonArr; // 按钮组
@end
@implementation HTButtonScrollView
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.pagingEnabled = YES; // 翻页效果
self.showsHorizontalScrollIndicator = NO;
self.buttonArr = [[NSMutableArray alloc] init];
}
return self;
}
// 配置按钮
- (void)configButtons:(NSArray *)buttons {
[self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
[self.buttonArr removeAllObjects];
if (buttons.count == 0) {
return;
}
// 默认一页5个按钮
NSInteger pageCount = (buttons.count - 1)/5 + 1;
CGFloat eachWidth;