Files
peko-ios/YuMi/Modules/YMMine/View/Setting/XPMineSwitchLanguageVC.m

154 lines
6.1 KiB
Mathematica
Raw Normal View History

2024-04-08 18:55:15 +08:00
//
// XPMineSwitchLanguageVC.m
// YuMi
//
// Created by duoban on 2024/4/8.
//
#import "XPMineSwitchLanguageVC.h"
#import "XPMineSettingItemModel.h"
2024-04-09 15:37:57 +08:00
#import "XPMineSwitchLanguageCell.h"
2024-04-08 18:55:15 +08:00
@interface XPMineSwitchLanguageVC ()<UITableViewDelegate, UITableViewDataSource>
@property(nonatomic,strong) UIButton *saveBtn;
@property (nonatomic,strong) UITableView *tableView;
2024-04-09 15:37:57 +08:00
@property(nonatomic,strong) XPMineSettingItemModel * chooseModel;
2024-04-08 18:55:15 +08:00
///
@property (nonatomic,strong) NSArray<XPMineSettingItemModel *> *datasource;
@end
@implementation XPMineSwitchLanguageVC
- (void)viewDidLoad {
[super viewDidLoad];
[self installUI];
[self installConstraints];
}
-(void)installUI{
self.title = YMLocalizedString(@"XPMineSwitchLanguageVC0");
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.saveBtn];
[self.view addSubview:self.tableView];
}
-(void)installConstraints{
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
2024-04-09 15:37:57 +08:00
make.top.mas_equalTo(kGetScaleWidth(20));
make.leading.trailing.equalTo(self.view).inset(kGetScaleWidth(16));
make.height.mas_equalTo(kGetScaleWidth(51 * 4));
2024-04-08 18:55:15 +08:00
}];
}
-(void)saveBtnAction{
2024-04-09 15:37:57 +08:00
NSString *language ;
if ([self.chooseModel.title isEqualToString:@"English"]){
language = @"en";
} else if ([self.chooseModel.title isEqualToString:@"繁體中文"]){
2024-04-09 15:37:57 +08:00
language = @"zh-Hant";
} else if ([self.chooseModel.title isEqualToString:@"Türkçe"]) {
language = @"tr";
} else{
2024-04-09 15:37:57 +08:00
language = @"ar";
}
2024-04-11 17:05:27 +08:00
if ([language isEqualToString:@"ar"]) {
[UIView appearance].semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
[UISearchBar appearance].semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
} else {
[UIView appearance].semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
[UISearchBar appearance].semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
}
2024-04-09 15:37:57 +08:00
[NSBundle setLanguageText:language];
[self.navigationController popToRootViewControllerAnimated:YES];
[self showLoading];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self hideHUD];
[[NSNotificationCenter defaultCenter] postNotificationName:@"kNavViewUpdateWhenLanguageUpdate" object:language];
[[NSNotificationCenter defaultCenter] postNotificationName:@"kSwitchLanguage" object:language];
});
2024-04-08 18:55:15 +08:00
}
#pragma mark - UITableViewDelegate And UITableViewDataSource
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
2024-04-09 15:37:57 +08:00
return kGetScaleWidth(51);
2024-04-08 18:55:15 +08:00
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.datasource.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
2024-04-09 15:37:57 +08:00
XPMineSwitchLanguageCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineSwitchLanguageCell class])];
XPMineSettingItemModel * model = [self.datasource xpSafeObjectAtIndex:indexPath.row];
2024-04-09 15:37:57 +08:00
cell.model = model;
2024-04-08 18:55:15 +08:00
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
XPMineSettingItemModel * model = [self.datasource xpSafeObjectAtIndex:indexPath.row] ;
2024-04-09 15:37:57 +08:00
for (XPMineSettingItemModel *obj in self.datasource) {
obj.isChoose = NO;
if ([model.title isEqualToString:obj.title]){
model.isChoose = YES;
}
2024-04-08 18:55:15 +08:00
}
2024-04-09 15:37:57 +08:00
self.chooseModel = model;
[self.tableView reloadData];
2024-04-08 18:55:15 +08:00
}
#pragma mark -
- (NSArray<XPMineSettingItemModel *> *)datasource{
if(!_datasource){
XPMineSettingItemModel *enItem = [XPMineSettingItemModel new];
enItem.title = @"English";
XPMineSettingItemModel *zhItem = [XPMineSettingItemModel new];
zhItem.title = @"繁體中文";
XPMineSettingItemModel *arItem = [XPMineSettingItemModel new];
arItem.title = @"العربية";
XPMineSettingItemModel *trItem = [XPMineSettingItemModel new];
trItem.title = @"Türkçe";
2024-04-09 15:37:57 +08:00
NSString *language = [NSBundle getLanguageText];
if ([language isEqualToString:@"en"]){
enItem.isChoose = YES;
self.chooseModel = enItem;
2024-04-09 15:37:57 +08:00
}else if ([language isEqualToString:@"ar"]){
arItem.isChoose = YES;
self.chooseModel = arItem;
}else if ([language isEqualToString:@"tr"]){
trItem.isChoose = YES;
self.chooseModel = trItem;
2024-04-09 15:37:57 +08:00
}else{
zhItem.isChoose = YES;
self.chooseModel = zhItem;
2024-04-09 15:37:57 +08:00
}
_datasource = @[enItem, zhItem, arItem, trItem];
2024-04-08 18:55:15 +08:00
}
return _datasource;
}
- (UIButton *)saveBtn {
if (!_saveBtn) {
_saveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[_saveBtn setFrame:CGRectMake(0, 0, 50, 30)];
[_saveBtn setTitle:YMLocalizedString(@"XPMineSwitchLanguageVC1") forState:UIControlStateNormal];
[_saveBtn setTitleColor:[DJDKMIMOMColor mainTextColor] forState:UIControlStateNormal];
_saveBtn.titleLabel.font = [UIFont systemFontOfSize:13];
[_saveBtn addTarget:self action:@selector(saveBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _saveBtn;
}
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
2024-04-08 18:55:15 +08:00
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.scrollEnabled = NO;
2024-04-08 18:55:15 +08:00
_tableView.showsVerticalScrollIndicator = NO;
2024-04-09 15:37:57 +08:00
_tableView.backgroundColor = [UIColor whiteColor];
_tableView.layer.cornerRadius = kGetScaleWidth(8);
_tableView.layer.masksToBounds = YES;
2024-04-08 18:55:15 +08:00
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
2024-04-09 15:37:57 +08:00
[_tableView registerClass:[XPMineSwitchLanguageCell class] forCellReuseIdentifier:NSStringFromClass([XPMineSwitchLanguageCell class])];
2024-04-08 18:55:15 +08:00
}
return _tableView;
}
@end