//数据
@property (nonatomic) NSArray<NSDictionary<NSString *, NSString *> *> *bannerDatas;
- (NSArray<NSDictionary<NSString *, NSString *> *> *)bannerDatas {
if (nil == _bannerDatas) {
NSData *data = [[[FIRRemoteConfig remoteConfig] configValueForKey:@"banner_config"] dataValue];
if (data.length) {
_bannerDatas = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
}
}
return _bannerDatas;
}
#pragma mark - SDCycleScrollViewDelegate
- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index {
NSURL *url = [NSURL URLWithString:[[self.bannerDatas objectAtIndex:index] objectForKey:@"actionUrl"]];
[[UIApplication sharedApplication] openURL:url options:nil completionHandler:nil];
}
//布局
#import <SDCycleScrollView/SDCycleScrollView.h>
@property (nonatomic) UIView *bannerView;
- (UIView *)bannerView {
if (NO == _bannerView) {
SDCycleScrollView *cycle = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil];
cycle.imageURLStringsGroup = [self.bannerDatas valueForKeyPath:@"imgUrl"];
_bannerView = cycle;
}
return _bannerView;
}
self.tableView.tableHeaderView = self.bannerView;
- (void)updateViewConstraints {
[super updateViewConstraints];
[self.bannerView mas_updateConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(self.tableView.bounds.size.width, 135.0f));
}];
}
[{"imgUrl":"https://cdn.kikakeyboard.com/picture/ios_keyboard/banner/diy_banner2x.png","actionUrl":"kika://custom"},
{"imgUrl":"https://cdn.kikakeyboard.com/picture/ios_keyboard/banner/avatar_banner2x.png","actionUrl":"kika://avatars"},
{"imgUrl":"https://cdn.kikakeyboard.com/picture/ios_keyboard/banner/sticker_banner2x.png","actionUrl":"kika://sticker"}]
·