1.0.19 feat:个性化房间背景 UI
This commit is contained in:
21
YuMi/Assets.xcassets/1.0.18/custom_bg_gif.imageset/Contents.json
vendored
Normal file
21
YuMi/Assets.xcassets/1.0.18/custom_bg_gif.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "gif@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/1.0.18/custom_bg_gif.imageset/gif@3x.png
vendored
Normal file
BIN
YuMi/Assets.xcassets/1.0.18/custom_bg_gif.imageset/gif@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
21
YuMi/Assets.xcassets/1.0.18/custom_bg_play.imageset/Contents.json
vendored
Normal file
21
YuMi/Assets.xcassets/1.0.18/custom_bg_play.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "播放@3x-2.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/1.0.18/custom_bg_play.imageset/播放@3x-2.png
vendored
Normal file
BIN
YuMi/Assets.xcassets/1.0.18/custom_bg_play.imageset/播放@3x-2.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
21
YuMi/Assets.xcassets/1.0.18/custom_bg_preview.imageset/Contents.json
vendored
Normal file
21
YuMi/Assets.xcassets/1.0.18/custom_bg_preview.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "图片@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/1.0.18/custom_bg_preview.imageset/图片@3x.png
vendored
Normal file
BIN
YuMi/Assets.xcassets/1.0.18/custom_bg_preview.imageset/图片@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 241 KiB |
@@ -11,6 +11,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface CustomRoomBGCell : UICollectionViewCell
|
||||
|
||||
@property (nonatomic, copy) void(^handleTapPlayButton)(id obj);
|
||||
|
||||
+ (void)registerTo:(UICollectionView *)collectionView;
|
||||
+ (CustomRoomBGCell *)reuseFrom:(UICollectionView *)collectionView atIndexPath:(NSIndexPath *)indexPath;
|
||||
|
||||
|
@@ -7,18 +7,18 @@
|
||||
|
||||
#import "CustomRoomBGCell.h"
|
||||
|
||||
#import "SVGA.h"
|
||||
|
||||
@interface CustomRoomBGCell ()
|
||||
|
||||
@property (nonatomic, strong) NetImageView *bgImageView;
|
||||
@property (nonatomic, strong) SVGAImageView *svgaImageView;
|
||||
@property (nonatomic, strong) UIView *selectedStateView;
|
||||
@property (nonatomic, strong) UILabel *remainingDaysLabel;
|
||||
@property (nonatomic, strong) UILabel *typeLabel;
|
||||
@property (nonatomic, strong) UIButton *previewButton;
|
||||
@property (nonatomic, strong) UILabel *pricePerDayLabel;
|
||||
@property (nonatomic, strong) UIButton *actionButton;
|
||||
@property (nonatomic, strong) UIImageView *bgTypeImageView;
|
||||
@property (nonatomic, strong) UIButton *playButton;
|
||||
@property (nonatomic, strong) UIButton *trashButton;
|
||||
|
||||
@end
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
atIndexPath:(NSIndexPath *)indexPath {
|
||||
CustomRoomBGCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([self class])
|
||||
forIndexPath:indexPath];
|
||||
cell.backgroundColor = [UIColor colorWithWhite:1 alpha:0.3];
|
||||
return cell;
|
||||
}
|
||||
|
||||
@@ -56,14 +55,86 @@
|
||||
make.edges.mas_equalTo(self.bgImageView);
|
||||
}];
|
||||
|
||||
|
||||
[self.contentView addSubview:self.remainingDaysLabel];
|
||||
[self.remainingDaysLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.leading.mas_equalTo(6);
|
||||
make.height.mas_equalTo(20);
|
||||
make.width.mas_greaterThanOrEqualTo(50);
|
||||
}];
|
||||
|
||||
[self.contentView addSubview:self.trashButton];
|
||||
[self.trashButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.top.mas_equalTo(self.contentView).inset(6);
|
||||
make.size.mas_equalTo(CGSizeMake(24, 19));
|
||||
}];
|
||||
|
||||
[self.contentView addSubview:self.playButton];
|
||||
[self.playButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.top.mas_equalTo(self.contentView).inset(6);
|
||||
make.size.mas_equalTo(CGSizeMake(24, 19));
|
||||
}];
|
||||
|
||||
[self.contentView addSubview:self.bgTypeImageView];
|
||||
[self.bgTypeImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(self.playButton);
|
||||
make.trailing.mas_equalTo(self.playButton.mas_leading).offset(-6);
|
||||
make.size.mas_equalTo(CGSizeMake(27, 19));
|
||||
}];
|
||||
|
||||
[self setupBottomArea];
|
||||
}
|
||||
|
||||
- (void)setupBottomArea {
|
||||
UIStackView *stack = [[UIStackView alloc] init];
|
||||
stack.spacing = 3;
|
||||
[self.contentView addSubview: stack];
|
||||
[stack mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.selectedStateView.mas_bottom).offset(6);
|
||||
make.centerX.mas_equalTo(self.selectedStateView);
|
||||
make.height.mas_equalTo(22);
|
||||
}];
|
||||
|
||||
UIImageView *gold = [self goldIcon];
|
||||
[stack addArrangedSubview:gold];
|
||||
[gold mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.size.mas_equalTo(CGSizeMake(20, 20));
|
||||
}];
|
||||
|
||||
[stack addArrangedSubview:self.pricePerDayLabel];
|
||||
|
||||
[self.contentView addSubview:self.actionButton];
|
||||
[self.actionButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self.contentView);
|
||||
make.top.mas_equalTo(stack.mas_bottom).offset(6);
|
||||
make.width.mas_greaterThanOrEqualTo(72);
|
||||
make.height.mas_equalTo(22);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
- (void)didTapActionButton {
|
||||
|
||||
}
|
||||
|
||||
- (void)didTapPlayButton {
|
||||
if (self.handleTapPlayButton) {
|
||||
self.handleTapPlayButton(@"");
|
||||
}
|
||||
}
|
||||
|
||||
- (void)didTapTrashButton {
|
||||
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
- (NetImageView *)bgImageView {
|
||||
if (!_bgImageView) {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.placeHolder = [UIImageConstant defaultEmptyPlaceholder];
|
||||
_bgImageView = [[NetImageView alloc] initWithConfig:config];
|
||||
_bgImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
_bgImageView.layer.masksToBounds = YES;
|
||||
_bgImageView.layer.cornerRadius = 10;
|
||||
}
|
||||
@@ -78,8 +149,77 @@
|
||||
_selectedStateView.layer.borderColor = UIColorFromRGB(0xFF8C03).CGColor;
|
||||
_selectedStateView.layer.borderWidth = 2;
|
||||
_selectedStateView.layer.masksToBounds = YES;
|
||||
// _selectedStateView.hidden = YES;
|
||||
}
|
||||
return _selectedStateView;
|
||||
}
|
||||
|
||||
- (UILabel *)remainingDaysLabel {
|
||||
if (!_remainingDaysLabel) {
|
||||
_remainingDaysLabel = [UILabel labelInitWithText:YMLocalizedString(@"1.0.18_7") font:kFontRegular(12) textColor:[UIColor whiteColor]];
|
||||
_remainingDaysLabel.backgroundColor = UIColorFromRGB(0x696969);
|
||||
_remainingDaysLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_remainingDaysLabel.layer.cornerRadius = 10;
|
||||
_remainingDaysLabel.layer.masksToBounds = YES;
|
||||
}
|
||||
return _remainingDaysLabel;
|
||||
}
|
||||
|
||||
- (UIImageView *)goldIcon {
|
||||
UIImageView *gold = [[UIImageView alloc] initWithImage:kImage(@"moli_money_icon")];
|
||||
return gold;
|
||||
}
|
||||
|
||||
- (UILabel *)pricePerDayLabel {
|
||||
if (!_pricePerDayLabel) {
|
||||
_pricePerDayLabel = [UILabel labelInitWithText:YMLocalizedString(@"1.0.18_8")
|
||||
font:kFontRegular(14)
|
||||
textColor:[UIColor whiteColor]];
|
||||
}
|
||||
return _pricePerDayLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)actionButton {
|
||||
if (!_actionButton) {
|
||||
_actionButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_actionButton setTitle:YMLocalizedString(@"1.0.18_9")
|
||||
forState:UIControlStateNormal];
|
||||
_actionButton.layer.cornerRadius = 11;
|
||||
_actionButton.layer.masksToBounds = YES;
|
||||
[_actionButton addTarget:self
|
||||
action:@selector(didTapActionButton)
|
||||
forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _actionButton;
|
||||
}
|
||||
|
||||
- (UIImageView *)bgTypeImageView {
|
||||
if (!_bgTypeImageView) {
|
||||
_bgTypeImageView = [[UIImageView alloc] initWithImage:kImage(@"custom_bg_gif")];
|
||||
}
|
||||
return _bgTypeImageView;
|
||||
}
|
||||
|
||||
- (UIButton *)playButton {
|
||||
if (!_playButton) {
|
||||
_playButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_playButton setImage:kImage(@"custom_bg_play") forState:UIControlStateNormal];
|
||||
[_playButton addTarget:self
|
||||
action:@selector(didTapPlayButton)
|
||||
forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _playButton;
|
||||
}
|
||||
|
||||
- (UIButton *)trashButton {
|
||||
if (!_trashButton) {
|
||||
_trashButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_trashButton setImage:kImage(@"custom_bg_trash") forState:UIControlStateNormal];
|
||||
[_trashButton addTarget:self
|
||||
action:@selector(didTapTrashButton)
|
||||
forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _trashButton;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -6,6 +6,7 @@
|
||||
//
|
||||
#import "CustomRoomBGContentViewController.h"
|
||||
|
||||
#import "SVGA.h"
|
||||
#import "CustomRoomBGCell.h"
|
||||
#import "CustomRoomBGPresenter.h"
|
||||
|
||||
@@ -20,6 +21,15 @@
|
||||
|
||||
@property (nonatomic, strong) UICollectionView *collectionView;
|
||||
|
||||
@property (nonatomic, strong) UIView *previewMask;
|
||||
@property (nonatomic, strong) UIImageView *previewFrontImageView;
|
||||
@property (nonatomic, strong) NetImageView *previewBackImageView;
|
||||
@property (nonatomic, strong) SVGAImageView *previewBackSvgaView;
|
||||
@property (nonatomic, strong) UIView *previewBottomBackground;
|
||||
@property (nonatomic, strong) UILabel *previewTipsContentLabel;
|
||||
@property (nonatomic, strong) UIButton *previewActionButton;
|
||||
@property (nonatomic, strong) UIButton *cancelPreviewButton;
|
||||
|
||||
@end
|
||||
|
||||
@implementation CustomRoomBGContentViewController
|
||||
@@ -31,24 +41,14 @@
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
self.view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];
|
||||
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapEmptySpace)];
|
||||
[self.view addGestureRecognizer:tap];
|
||||
|
||||
[self setupUI];
|
||||
|
||||
[self didSelectedButton:self.freeButton];
|
||||
}
|
||||
|
||||
- (void)setupUI {
|
||||
[self.view addSubview:[self bottomAreaBackGround]];
|
||||
[self.view addSubview:self.emptyStateView];
|
||||
[self.emptyStateView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.bottomAreaBackGround).offset(72);
|
||||
make.leading.trailing.mas_equalTo(self.view);
|
||||
make.height.mas_equalTo(26 + 110);
|
||||
|
||||
}];
|
||||
self.view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.3];
|
||||
[self setupBackgroundContent];
|
||||
|
||||
[self setupTopButtons];
|
||||
|
||||
@@ -60,6 +60,24 @@
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setupBackgroundContent {
|
||||
[self.view addSubview:[self bottomAreaBackGround]];
|
||||
|
||||
UIButton *b = [self dismissButton];
|
||||
[self.view addSubview:b];
|
||||
[b mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.leading.trailing.mas_equalTo(self.view);
|
||||
make.bottom.mas_equalTo(self.bottomAreaBackGround.mas_top).offset(-16);
|
||||
}];
|
||||
|
||||
[self.view addSubview:self.emptyStateView];
|
||||
[self.emptyStateView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.bottomAreaBackGround).offset(72);
|
||||
make.leading.trailing.mas_equalTo(self.view);
|
||||
make.height.mas_equalTo(26 + 110);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setupTopButtons {
|
||||
self.freeButton = [self bgCategoryButton:101];
|
||||
self.payButton = [self bgCategoryButton:102];
|
||||
@@ -119,6 +137,72 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)displayPreviewArea {
|
||||
UIView *view = [self previewMask];
|
||||
[self.view addSubview:view];
|
||||
|
||||
[self.view addSubview:self.previewBottomBackground];
|
||||
|
||||
[self.previewBottomBackground addSubview:self.previewTipsContentLabel];
|
||||
[self.previewTipsContentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.previewBottomBackground).offset(47);
|
||||
make.leading.trailing.mas_equalTo(self.previewBottomBackground).inset(15);
|
||||
}];
|
||||
|
||||
UIImageView *gold = [self goldIcon];
|
||||
[self.previewBottomBackground addSubview:gold];
|
||||
[gold mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(self.previewBottomBackground).offset(103);
|
||||
make.leading.mas_equalTo(self.previewBottomBackground).offset(15);
|
||||
make.size.mas_equalTo(CGSizeMake(26, 26));
|
||||
}];
|
||||
|
||||
UILabel *pricePerDay = [self pricePerDayLabel];
|
||||
[self.previewBottomBackground addSubview:pricePerDay];
|
||||
[pricePerDay mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(gold);
|
||||
make.leading.mas_equalTo(gold.mas_trailing).offset(4);
|
||||
}];
|
||||
|
||||
[self.previewBottomBackground addSubview:self.previewActionButton];
|
||||
[self.previewActionButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(gold);
|
||||
make.trailing.mas_equalTo(self.previewBottomBackground).offset(15);
|
||||
make.size.mas_equalTo(CGSizeMake(120, 38));
|
||||
}];
|
||||
|
||||
[self.view addSubview:self.previewFrontImageView];
|
||||
[self.previewFrontImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(self.previewBottomBackground.mas_top).offset(-16);
|
||||
make.top.mas_equalTo(100);
|
||||
make.leading.trailing.mas_equalTo(self.view).inset(64);
|
||||
}];
|
||||
|
||||
[self.view insertSubview:self.previewBackImageView belowSubview:self.previewFrontImageView];
|
||||
[self.previewBackImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.previewFrontImageView);
|
||||
}];
|
||||
|
||||
[self.view insertSubview:self.previewBackSvgaView belowSubview:self.previewFrontImageView];
|
||||
[self.previewBackSvgaView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self.previewFrontImageView);
|
||||
}];
|
||||
|
||||
SVGAParser *_parser = [SVGAParser new];
|
||||
@kWeakify(self);
|
||||
[_parser parseWithNamed:@"Combo_Boom"
|
||||
inBundle:nil
|
||||
completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||
@kStrongify(self);
|
||||
// self.svgaVideoEntity = videoItem;
|
||||
self.previewBackSvgaView.loops = 0;
|
||||
// self.previewBackSvgaView.clearsAfterStop = NO;
|
||||
self.previewBackSvgaView.videoItem = videoItem;
|
||||
[self.previewBackSvgaView startAnimation];
|
||||
} failureBlock:^(NSError * _Nullable error) {
|
||||
NSLog(@"%@", error);
|
||||
}];
|
||||
}
|
||||
#pragma mark -
|
||||
- (void)didTapEmptySpace {
|
||||
[self dismissViewControllerAnimated:YES completion:nil];
|
||||
@@ -142,6 +226,14 @@
|
||||
|
||||
}
|
||||
|
||||
- (void)didTapActionButton {
|
||||
|
||||
}
|
||||
|
||||
- (void)didTapCancelPreview {
|
||||
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
||||
return 10;
|
||||
@@ -149,10 +241,22 @@
|
||||
|
||||
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||
CustomRoomBGCell *cell = [CustomRoomBGCell reuseFrom:collectionView atIndexPath:indexPath];
|
||||
@kWeakify(self);
|
||||
[cell setHandleTapPlayButton:^(id _Nonnull obj) {
|
||||
@kStrongify(self);
|
||||
[self displayPreviewArea];
|
||||
}];
|
||||
return cell;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
- (UIButton *)dismissButton {
|
||||
UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[b setBackgroundColor:[UIColor clearColor]];
|
||||
[b addTarget:self action:@selector(didTapEmptySpace) forControlEvents:UIControlEventTouchUpInside];
|
||||
return b;
|
||||
}
|
||||
|
||||
- (UIView *)bottomAreaBackGround {
|
||||
if (!_bottomAreaBackGround) {
|
||||
CGFloat height = kGetScaleWidth(323) + kSafeAreaBottomHeight;
|
||||
@@ -250,6 +354,7 @@ forControlEvents:UIControlEventTouchUpInside];
|
||||
make.top.mas_equalTo(imageView.mas_bottom).offset(6);
|
||||
make.height.mas_equalTo(22);
|
||||
}];
|
||||
|
||||
_emptyStateView = v;
|
||||
}
|
||||
return _emptyStateView;
|
||||
@@ -259,7 +364,7 @@ forControlEvents:UIControlEventTouchUpInside];
|
||||
if (!_collectionView) {
|
||||
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
|
||||
layout.itemSize = CGSizeMake(kGetScaleWidth(135), kGetScaleWidth(180 + 32 + 22));
|
||||
layout.minimumLineSpacing = 0;
|
||||
layout.minimumLineSpacing = 10;
|
||||
layout.minimumInteritemSpacing = 10;
|
||||
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
|
||||
layout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 15);
|
||||
@@ -273,6 +378,118 @@ forControlEvents:UIControlEventTouchUpInside];
|
||||
return _collectionView;
|
||||
}
|
||||
|
||||
- (UIView *)previewMask {
|
||||
UIView *v = [[UIView alloc] initWithFrame:self.view.bounds];
|
||||
v.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];
|
||||
return v;
|
||||
}
|
||||
|
||||
- (UIView *)previewBottomBackground {
|
||||
if (!_previewBottomBackground) {
|
||||
CGFloat height = kGetScaleWidth(174) + kSafeAreaBottomHeight;
|
||||
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, KScreenHeight - height, KScreenWidth, height)];
|
||||
v.userInteractionEnabled = YES;
|
||||
v.backgroundColor = [UIColor blackColor];
|
||||
v.layer.cornerRadius = 16;
|
||||
v.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner;
|
||||
v.layer.masksToBounds = YES;
|
||||
|
||||
UILabel *tipsTitleLabel = [UILabel labelInitWithText:YMLocalizedString(@"1.0.18_11")
|
||||
font:kFontMedium(15)
|
||||
textColor:[UIColor whiteColor]];
|
||||
tipsTitleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
[v addSubview:tipsTitleLabel];
|
||||
[tipsTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(v).offset(13);
|
||||
make.centerX.mas_equalTo(v);
|
||||
}];
|
||||
|
||||
UIButton *b = [self cancelPreviewButton];
|
||||
[v addSubview:b];
|
||||
[b mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.top.mas_equalTo(15);
|
||||
make.size.mas_equalTo(22);
|
||||
}];
|
||||
|
||||
_previewBottomBackground = v;
|
||||
}
|
||||
return _previewBottomBackground;
|
||||
}
|
||||
|
||||
- (NetImageView *)previewBackImageView {
|
||||
if (!_previewBackImageView) {
|
||||
_previewBackImageView = [[NetImageView alloc] init];
|
||||
_previewBackImageView.layer.cornerRadius = 14;
|
||||
_previewBackImageView.layer.masksToBounds = YES;
|
||||
// _previewBackImageView.imageUrl = @"https://wx1.moyu.im/mw600/008ElFOcly1hv5oqfnpxtj30z07czx1k.jpg";
|
||||
}
|
||||
return _previewBackImageView;
|
||||
}
|
||||
|
||||
- (SVGAImageView *)previewBackSvgaView {
|
||||
if (!_previewBackSvgaView) {
|
||||
_previewBackSvgaView = [[SVGAImageView alloc] init];
|
||||
_previewBackSvgaView.layer.cornerRadius = 14;
|
||||
_previewBackSvgaView.layer.masksToBounds = YES;
|
||||
_previewBackSvgaView.autoPlay = YES;
|
||||
}
|
||||
return _previewBackSvgaView;
|
||||
}
|
||||
|
||||
- (UIImageView *)previewFrontImageView {
|
||||
if (!_previewFrontImageView) {
|
||||
_previewFrontImageView = [[UIImageView alloc] initWithImage:kImage(@"custom_bg_preview")];
|
||||
_previewFrontImageView.layer.cornerRadius = 14;
|
||||
_previewFrontImageView.layer.masksToBounds = YES;
|
||||
_previewFrontImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
return _previewFrontImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)previewTipsContentLabel {
|
||||
if (!_previewTipsContentLabel) {
|
||||
_previewTipsContentLabel = [UILabel labelInitWithText:YMLocalizedString(@"1.0.18_12")
|
||||
font:kFontMedium(15)
|
||||
textColor:[UIColor colorWithWhite:1 alpha:0.6]];
|
||||
_previewTipsContentLabel.numberOfLines = 0;
|
||||
_previewTipsContentLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _previewTipsContentLabel;
|
||||
}
|
||||
|
||||
- (UIImageView *)goldIcon {
|
||||
UIImageView *gold = [[UIImageView alloc] initWithImage:kImage(@"moli_money_icon")];
|
||||
return gold;
|
||||
}
|
||||
|
||||
- (UILabel *)pricePerDayLabel {
|
||||
UILabel *label = [UILabel labelInitWithText:YMLocalizedString(@"1.0.18_14")
|
||||
font:kFontMedium(16)
|
||||
textColor:UIColorFromRGB(0xFF8C03)];
|
||||
return label;
|
||||
}
|
||||
|
||||
- (UIButton *)previewActionButton {
|
||||
if (!_previewActionButton) {
|
||||
_previewActionButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_previewActionButton setTitle:YMLocalizedString(@"1.0.18_15")
|
||||
forState:UIControlStateNormal];
|
||||
_previewActionButton.layer.cornerRadius = 11;
|
||||
_previewActionButton.layer.masksToBounds = YES;
|
||||
[_previewActionButton addTarget:self
|
||||
action:@selector(didTapActionButton)
|
||||
forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _previewActionButton;
|
||||
}
|
||||
|
||||
- (UIButton *)cancelPreviewButton {
|
||||
UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[b setImage:kImage(@"common_nav_back_white") forState:UIControlStateNormal];
|
||||
[b addTarget:self action:@selector(didTapCancelPreview) forControlEvents:UIControlEventTouchUpInside];
|
||||
return b;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
- (NSString *)titleForTag:(NSInteger)tag {
|
||||
|
@@ -186,11 +186,7 @@
|
||||
[array insertObject:dating atIndex:0];
|
||||
indexOfRoomAlbum += 1;
|
||||
}
|
||||
// [array addObject:inviteFriend];
|
||||
[array addObject:trumpet];
|
||||
// if (isCreator && roomInfo.type != RoomType_Anchor && roomInfo.isPermitRoom != PermitRoomType_Licnese && roomInfo.isPermitRoom != PermitRoomType_YoungerStar) {
|
||||
// [array addObject:releaseRadio];
|
||||
// }
|
||||
[array addObject:giftEffect];
|
||||
[array addObject:roomSetting];
|
||||
[array addObject:clearScreen];
|
||||
|
@@ -3972,3 +3972,13 @@ ineHeadView12" = "الحمل";
|
||||
"1.0.18_4" = "Create new";
|
||||
"1.0.18_5" = "You can customize up to 6 backgrounds.";
|
||||
"1.0.18_6" = "You can only upload up to 6 images at a time as a custom background. Once the background is created, it cannot be canceled. We will review the uploaded background within 24 hours. If the background is rejected, you will receive a refund of coins.";
|
||||
"1.0.18_7" = "Expired";
|
||||
"1.0.18_8" = "Days";
|
||||
"1.0.18_9" = "Buy";
|
||||
"1.0.18_10" = "Renew";
|
||||
"1.0.18_11" = "Purchases Tips";
|
||||
"1.0.18_12" = "Are you sure you want to use this image as your background?";
|
||||
"1.0.18_13" = "Are you sure you want to buy?";
|
||||
"1.0.18_14" = "1000/15Days";
|
||||
"1.0.18_15" = "Submit";
|
||||
"1.0.18_15" = "Confirm";
|
||||
|
@@ -3768,3 +3768,13 @@
|
||||
"1.0.18_4" = "Create new";
|
||||
"1.0.18_5" = "You can customize up to 6 backgrounds.";
|
||||
"1.0.18_6" = "You can only upload up to 6 images at a time as a custom background. Once the background is created, it cannot be canceled. We will review the uploaded background within 24 hours. If the background is rejected, you will receive a refund of coins.";
|
||||
"1.0.18_7" = "Expired";
|
||||
"1.0.18_8" = "Days";
|
||||
"1.0.18_9" = "Buy";
|
||||
"1.0.18_10" = "Renew";
|
||||
"1.0.18_11" = "Purchases Tips";
|
||||
"1.0.18_12" = "Are you sure you want to use this image as your background?";
|
||||
"1.0.18_13" = "Are you sure you want to buy?";
|
||||
"1.0.18_14" = "1000/15Days";
|
||||
"1.0.18_15" = "Submit";
|
||||
"1.0.18_15" = "Confirm";
|
||||
|
@@ -3554,3 +3554,13 @@
|
||||
"1.0.18_4" = "Create new";
|
||||
"1.0.18_5" = "You can customize up to 6 backgrounds.";
|
||||
"1.0.18_6" = "You can only upload up to 6 images at a time as a custom background. Once the background is created, it cannot be canceled. We will review the uploaded background within 24 hours. If the background is rejected, you will receive a refund of coins.";
|
||||
"1.0.18_7" = "Expired";
|
||||
"1.0.18_8" = "Days";
|
||||
"1.0.18_9" = "Buy";
|
||||
"1.0.18_10" = "Renew";
|
||||
"1.0.18_11" = "Purchases Tips";
|
||||
"1.0.18_12" = "Are you sure you want to use this image as your background?";
|
||||
"1.0.18_13" = "Are you sure you want to buy?";
|
||||
"1.0.18_14" = "1000/15Days";
|
||||
"1.0.18_15" = "Submit";
|
||||
"1.0.18_15" = "Confirm";
|
||||
|
@@ -3424,3 +3424,15 @@
|
||||
"1.0.18_4" = "Create new";
|
||||
"1.0.18_5" = "You can customize up to 6 backgrounds.";
|
||||
"1.0.18_6" = "You can only upload up to 6 images at a time as a custom background. Once the background is created, it cannot be canceled. We will review the uploaded background within 24 hours. If the background is rejected, you will receive a refund of coins.";
|
||||
"1.0.18_7" = "Expired";
|
||||
"1.0.18_8" = "Days";
|
||||
"1.0.18_9" = "Buy";
|
||||
"1.0.18_10" = "Renew";
|
||||
"1.0.18_11" = "Purchases Tips";
|
||||
"1.0.18_12" = "Are you sure you want to use this image as your background?";
|
||||
"1.0.18_14" = "1000/15Days";
|
||||
"1.0.18_13" = "Are you sure you want to buy?";
|
||||
"1.0.18_14" = "1000/15Days";
|
||||
"1.0.18_15" = "Submit";
|
||||
"1.0.18_15" = "Confirm";
|
||||
|
||||
|
Reference in New Issue
Block a user