1
This commit is contained in:
@@ -69,7 +69,7 @@
|
|||||||
make.height.mas_equalTo(100);
|
make.height.mas_equalTo(100);
|
||||||
}];
|
}];
|
||||||
|
|
||||||
UILabel *row1 = [UILabel new]; row1.text = @"恋爱键盘"; row1.textColor = [UIColor blackColor];
|
UILabel *row1 = [UILabel new]; row1.text = AppName; row1.textColor = [UIColor blackColor];
|
||||||
UILabel *row2 = [UILabel new]; row2.text = @"允许完全访问"; row2.textColor = [UIColor blackColor];
|
UILabel *row2 = [UILabel new]; row2.text = @"允许完全访问"; row2.textColor = [UIColor blackColor];
|
||||||
[box addSubview:row1]; [box addSubview:row2];
|
[box addSubview:row1]; [box addSubview:row2];
|
||||||
[row1 mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(box).offset(16); make.top.equalTo(box).offset(14); }];
|
[row1 mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(box).offset(16); make.top.equalTo(box).offset(14); }];
|
||||||
@@ -171,7 +171,8 @@
|
|||||||
void (^finish)(BOOL) = ^(BOOL ok){
|
void (^finish)(BOOL) = ^(BOOL ok){
|
||||||
if (ok) { [self dismiss]; }
|
if (ok) { [self dismiss]; }
|
||||||
else {
|
else {
|
||||||
[KBHUD showInfo:@"无法自动打开,请按路径:设置→通用→键盘→键盘→恋爱键盘→允许完全访问"]; // 失败兜底提示
|
NSString *showInfo = [NSString stringWithFormat:@"请按路径:设置→通用→键盘→键盘→%@→允许完全访问",AppName];
|
||||||
|
[KBHUD showInfo:showInfo];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,9 @@
|
|||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define AppName @"Key of Love"
|
||||||
|
|
||||||
// 基础baseUrl
|
// 基础baseUrl
|
||||||
#ifndef KB_BASE_URL
|
#ifndef KB_BASE_URL
|
||||||
//#define KB_BASE_URL @"https://m1.apifoxmock.com/m1/5438099-5113192-default/"
|
//#define KB_BASE_URL @"https://m1.apifoxmock.com/m1/5438099-5113192-default/"
|
||||||
|
|||||||
@@ -23,6 +23,10 @@ static NSString * const kKBVipReviewListCellId = @"kKBVipReviewListCellId";
|
|||||||
// Header 自适应测量
|
// Header 自适应测量
|
||||||
@property (nonatomic, strong) KBVipPayHeaderView *sizingHeader;
|
@property (nonatomic, strong) KBVipPayHeaderView *sizingHeader;
|
||||||
@property (nonatomic, assign) CGFloat headerHeight;
|
@property (nonatomic, assign) CGFloat headerHeight;
|
||||||
|
// 底部支付与协议
|
||||||
|
@property (nonatomic, strong) UIButton *payButton; // 支付按钮(背景图)
|
||||||
|
@property (nonatomic, strong) UILabel *agreementLabel; // 协议提示
|
||||||
|
@property (nonatomic, strong) UIButton *agreementButton; // 《Embership Agreement》
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@@ -52,9 +56,28 @@ static NSString * const kKBVipReviewListCellId = @"kKBVipReviewListCellId";
|
|||||||
|
|
||||||
// 组装主列表
|
// 组装主列表
|
||||||
[self.view addSubview:self.collectionView];
|
[self.view addSubview:self.collectionView];
|
||||||
|
// 先添加底部按钮与协议,再让 collectionView 的底部在按钮之上
|
||||||
|
[self.view addSubview:self.payButton];
|
||||||
|
[self.view addSubview:self.agreementLabel];
|
||||||
|
[self.view addSubview:self.agreementButton];
|
||||||
|
[self.payButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.left.equalTo(self.view).offset(24);
|
||||||
|
make.right.equalTo(self.view).offset(-24);
|
||||||
|
make.bottom.equalTo(self.agreementLabel.mas_top).offset(-14);
|
||||||
|
make.height.mas_equalTo(58);
|
||||||
|
}];
|
||||||
|
[self.agreementButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerX.equalTo(self.view);
|
||||||
|
make.bottom.equalTo(self.view).offset(-KB_SAFE_BOTTOM - 15);
|
||||||
|
}];
|
||||||
|
[self.agreementLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
|
make.centerX.equalTo(self.view);
|
||||||
|
make.bottom.equalTo(self.agreementButton.mas_top).offset(-8);
|
||||||
|
}];
|
||||||
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
make.left.right.bottom.equalTo(self.view);
|
make.left.right.equalTo(self.view);
|
||||||
make.top.equalTo(self.view).offset(0);
|
make.top.equalTo(self.view).offset(0);
|
||||||
|
make.bottom.equalTo(self.payButton.mas_top).offset(-16);
|
||||||
}];
|
}];
|
||||||
[self.view addSubview:self.closeButton];
|
[self.view addSubview:self.closeButton];
|
||||||
[self.closeButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
[self.closeButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||||
@@ -101,6 +124,15 @@ static NSString * const kKBVipReviewListCellId = @"kKBVipReviewListCellId";
|
|||||||
[self.navigationController popViewControllerAnimated:true];
|
[self.navigationController popViewControllerAnimated:true];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma mark - Bottom Actions
|
||||||
|
- (void)onTapPayButton {
|
||||||
|
// TODO: 接入支付,这里仅做 UI
|
||||||
|
[KBHUD showInfo:@"Pay clicked"];
|
||||||
|
}
|
||||||
|
- (void)agreementButtonAction{
|
||||||
|
[KBHUD showInfo:@"跳转协议"];
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - UICollectionView DataSource
|
#pragma mark - UICollectionView DataSource
|
||||||
|
|
||||||
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
|
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
|
||||||
@@ -230,6 +262,46 @@ static NSString * const kKBVipReviewListCellId = @"kKBVipReviewListCellId";
|
|||||||
return _closeButton;
|
return _closeButton;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (UIButton *)payButton {
|
||||||
|
if (!_payButton) {
|
||||||
|
_payButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||||
|
[_payButton setTitle:@"Recharge Now" forState:UIControlStateNormal];
|
||||||
|
[_payButton setTitleColor:[UIColor colorWithHex:KBBlackValue] forState:UIControlStateNormal];
|
||||||
|
_payButton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold];
|
||||||
|
UIImage *bg = [UIImage imageNamed:@"recharge_now_icon"];
|
||||||
|
if (bg) {
|
||||||
|
[_payButton setBackgroundImage:bg forState:UIControlStateNormal];
|
||||||
|
} else {
|
||||||
|
// 兜底:纯代码渐变
|
||||||
|
UIImage *fallback = [UIImage kb_gradientImageWithColors:@[[UIColor colorWithHex:0xC7F8F0], [UIColor colorWithHex:0xE8FFF6]] size:CGSizeMake(10, 58) direction:KBGradientDirectionLeftToRight];
|
||||||
|
[_payButton setBackgroundImage:[fallback resizableImageWithCapInsets:UIEdgeInsetsMake(29, 29, 29, 29) resizingMode:UIImageResizingModeStretch] forState:UIControlStateNormal];
|
||||||
|
}
|
||||||
|
[_payButton addTarget:self action:@selector(onTapPayButton) forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
}
|
||||||
|
return _payButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UILabel *)agreementLabel {
|
||||||
|
if (!_agreementLabel) {
|
||||||
|
_agreementLabel = [UILabel new];
|
||||||
|
_agreementLabel.text = @"By clicking \"Pay\", you indicate your agreement to the";
|
||||||
|
_agreementLabel.font = [UIFont systemFontOfSize:12];
|
||||||
|
_agreementLabel.textColor = [UIColor colorWithHex:KBBlackValue];
|
||||||
|
}
|
||||||
|
return _agreementLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (UIButton *)agreementButton {
|
||||||
|
if (!_agreementButton) {
|
||||||
|
_agreementButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||||
|
[_agreementButton setTitle:@"《Embership Agreement》" forState:UIControlStateNormal];
|
||||||
|
[_agreementButton setTitleColor:[UIColor colorWithHex:KBColorValue] forState:UIControlStateNormal];
|
||||||
|
_agreementButton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightSemibold];
|
||||||
|
[_agreementButton addTarget:self action:@selector(agreementButtonAction) forControlEvents:UIControlEventTouchUpInside];
|
||||||
|
}
|
||||||
|
return _agreementButton;
|
||||||
|
}
|
||||||
|
|
||||||
- (void)viewDidLayoutSubviews {
|
- (void)viewDidLayoutSubviews {
|
||||||
[super viewDidLayoutSubviews];
|
[super viewDidLayoutSubviews];
|
||||||
// 宽度变化时重算 Header 高度并刷新布局
|
// 宽度变化时重算 Header 高度并刷新布局
|
||||||
|
|||||||
Reference in New Issue
Block a user