|
@@ -28,7 +28,12 @@
|
|
- (void)bindViewModel:(NYFailSpecialExerciseDetailItemModel *)viewModel {
|
|
- (void)bindViewModel:(NYFailSpecialExerciseDetailItemModel *)viewModel {
|
|
@weakify(self)
|
|
@weakify(self)
|
|
self.viewModel = viewModel;
|
|
self.viewModel = viewModel;
|
|
- self.scoreStr_label.text = viewModel.dataModel.title;
|
|
|
|
|
|
+ if([viewModel.title isEqualToString:@"zhouqi"]||
|
|
|
|
+ [viewModel.title isEqualToString:@"tianqi"]){
|
|
|
|
+ self.scoreStr_label.attributedText = [self getAttributedString:viewModel.dataModel.title color:UIColorHex(0xFF6714)];
|
|
|
|
+ }else{
|
|
|
|
+ self.scoreStr_label.text = viewModel.dataModel.title;
|
|
|
|
+ }
|
|
self.vw_left_label.text = viewModel.itemPointTitle;
|
|
self.vw_left_label.text = viewModel.itemPointTitle;
|
|
__block CGFloat yOffset = 0; // 初始偏移量
|
|
__block CGFloat yOffset = 0; // 初始偏移量
|
|
__block CGFloat cellHeight = 35.f; // 每个 Cell 的高度(根据实际设计调整)
|
|
__block CGFloat cellHeight = 35.f; // 每个 Cell 的高度(根据实际设计调整)
|
|
@@ -36,33 +41,116 @@
|
|
CGFloat imgW = (RQ_SCREEN_WIDTH-22*2);
|
|
CGFloat imgW = (RQ_SCREEN_WIDTH-22*2);
|
|
self.itop_view.hidden = YES;
|
|
self.itop_view.hidden = YES;
|
|
if(viewModel.dataModel.con.count>0){//手势
|
|
if(viewModel.dataModel.con.count>0){//手势
|
|
|
|
+ // 在方法内定义串行队列
|
|
|
|
+ dispatch_queue_t serialQueue = dispatch_queue_create("com.yourapp.imageLoadingQueue", DISPATCH_QUEUE_SERIAL);
|
|
|
|
+ self.vw_left_view.hidden = YES;
|
|
|
|
+ self.itop_view.hidden = NO;
|
|
|
|
+ self.scoreStr_label.text = viewModel.dataModel.mainTit;
|
|
|
|
+ __block CGFloat itop_yOffset = 0; // 初始偏移量
|
|
|
|
+ __block CGFloat itop_cellHeight = 35.f; // 每个 Cell 的高度(根据实际设计调整)
|
|
|
|
+ int itop_bi = 0;
|
|
for (int i= 0; i<viewModel.dataModel.con.count; i++) {
|
|
for (int i= 0; i<viewModel.dataModel.con.count; i++) {
|
|
NYFailItemPointDataCon *con = viewModel.dataModel.con[i];
|
|
NYFailItemPointDataCon *con = viewModel.dataModel.con[i];
|
|
- NSString *img_url = con.image;
|
|
|
|
- UIImageView *image_view = [self.item_view viewWithTag:99+i];
|
|
|
|
- __block CGSize imageSize = CGSizeMake(imgW,cellHeight);
|
|
|
|
- dispatch_async(dispatch_get_global_queue(0, 0), ^{
|
|
|
|
- // 处理耗时操作的代码块...
|
|
|
|
- imageSize = [UIImage getImageSizeWithURL:img_url];
|
|
|
|
- //通知主线程刷新
|
|
|
|
- dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
- //回调或者说是通知主线程刷新,
|
|
|
|
- if (imageSize.width == 0 || imageSize.height == 0) {
|
|
|
|
- cellHeight = imgW * (175.f / 345.f);
|
|
|
|
- } else {
|
|
|
|
- cellHeight = imgW * (imageSize.height / imageSize.width);
|
|
|
|
|
|
+ if(![con.title isEqualToString:@""]){
|
|
|
|
+ self.itop_view.frame = CGRectMake(0, 0, imgW, viewModel.dataModel.iviewH);
|
|
|
|
+ // 从 XIB 加载 NYFailItemPointCellView
|
|
|
|
+ NYFailItemPointCellView *cellView = [self.itop_view viewWithTag:19+i];
|
|
|
|
+ cellView.line_view.hidden = YES;
|
|
|
|
+ cellView.hidden = NO;
|
|
|
|
+ CGSize str_size = [con.title rq_sizeWithFont:cellView.content_label.font limitWidth:cellView.content_label.width];
|
|
|
|
+ if(str_size.height>itop_cellHeight){
|
|
|
|
+ itop_cellHeight = str_size.height + 12.f;
|
|
|
|
+ }
|
|
|
|
+ cellView.content_label.attributedText = [self getAttributedString:con.title color:UIColorHex(0xFF6714)];
|
|
|
|
+ NSString *img_url = con.image;
|
|
|
|
+ if(![img_url isEqualToString:@""]){
|
|
|
|
+ self.itop_view.frame = CGRectMake(0, 0, imgW, viewModel.dataModel.iviewH+viewModel.dataModel.imgsH);
|
|
|
|
+ UIImageView *image_view = [self.itop_view viewWithTag:79+i];
|
|
|
|
+ __block CGSize imageSize = CGSizeMake(imgW,cellHeight);
|
|
|
|
+ dispatch_async(serialQueue, ^{
|
|
|
|
+ // 处理耗时操作的代码块...
|
|
|
|
+ imageSize = [UIImage getImageSizeWithURL:img_url];
|
|
|
|
+ //通知主线程刷新
|
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
+ cellView.frame = CGRectMake(0, itop_yOffset, RQ_SCREEN_WIDTH-22*2, itop_cellHeight);
|
|
|
|
+ itop_yOffset +=itop_cellHeight;
|
|
|
|
+ //回调或者说是通知主线程刷新,
|
|
|
|
+ if (imageSize.width == 0 || imageSize.height == 0) {
|
|
|
|
+ cellHeight = imgW * (175.f / 345.f);
|
|
|
|
+ } else {
|
|
|
|
+ cellHeight = imgW * (imageSize.height / imageSize.width);
|
|
|
|
+ }
|
|
|
|
+ image_view.frame = CGRectMake(0, itop_yOffset, imgW, cellHeight);
|
|
|
|
+ // 调整偏移量
|
|
|
|
+ itop_yOffset += cellHeight+10*(i+1);
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ [image_view sd_setImageWithURL:[NSURL URLWithString:img_url]];
|
|
|
|
+ image_view.hidden = NO;
|
|
|
|
+ bi = i+1;
|
|
|
|
+ itop_bi = i+1;
|
|
|
|
+ }else{
|
|
|
|
+ dispatch_async(serialQueue, ^{
|
|
|
|
+ //通知主线程刷新
|
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
+ cellView.frame = CGRectMake(0, itop_yOffset, RQ_SCREEN_WIDTH-22*2, itop_cellHeight);
|
|
|
|
+ itop_yOffset +=itop_cellHeight;
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ itop_bi = i+1;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(con.questions.count>0){//二层子集
|
|
|
|
+ for (int z= 0; z<con.questions.count; z++) {
|
|
|
|
+ NYFailItemPointDataQuesImage *img = con.questions[z];
|
|
|
|
+ NSString *subTitle_str = img.subTitle;
|
|
|
|
+ NSString *img_url = img.image;
|
|
|
|
+ if(![img_url isEqualToString:@""]){
|
|
|
|
+ self.itop_view.frame = CGRectMake(0, 0, imgW, viewModel.dataModel.iviewH+viewModel.dataModel.imgsH);
|
|
|
|
+ // 从 XIB 加载 NYFailItemPointCellView
|
|
|
|
+ NYFailItemPointCellView *cellView = [self.itop_view viewWithTag:19+i+z+1];
|
|
|
|
+ cellView.line_view.hidden = YES;
|
|
|
|
+ cellView.hidden = NO;
|
|
|
|
+ CGSize str_size = [subTitle_str rq_sizeWithFont:cellView.content_label.font limitWidth:cellView.content_label.width];
|
|
|
|
+ if(str_size.height>itop_cellHeight){
|
|
|
|
+ itop_cellHeight = str_size.height + 12.f;
|
|
|
|
+ }
|
|
|
|
+ cellView.content_label.attributedText = [self getAttributedString:subTitle_str color:UIColorHex(0xFF6714)];
|
|
|
|
+ UIImageView *image_view = [self.itop_view viewWithTag:79+i+z+1];
|
|
|
|
+ __block CGSize imageSize = CGSizeMake(imgW,cellHeight);
|
|
|
|
+ dispatch_async(serialQueue, ^{
|
|
|
|
+ // 处理耗时操作的代码块...
|
|
|
|
+ imageSize = [UIImage getImageSizeWithURL:img_url];
|
|
|
|
+ //通知主线程刷新
|
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
+ cellView.frame = CGRectMake(0, itop_yOffset, RQ_SCREEN_WIDTH-22*2, itop_cellHeight);
|
|
|
|
+ itop_yOffset +=itop_cellHeight;
|
|
|
|
+ //回调或者说是通知主线程刷新,
|
|
|
|
+ if (imageSize.width == 0 || imageSize.height == 0) {
|
|
|
|
+ cellHeight = imgW * (175.f / 345.f);
|
|
|
|
+ } else {
|
|
|
|
+ cellHeight = imgW * (imageSize.height / imageSize.width);
|
|
|
|
+ }
|
|
|
|
+ image_view.frame = CGRectMake(0, itop_yOffset, imgW, cellHeight);
|
|
|
|
+ // 调整偏移量
|
|
|
|
+ itop_yOffset += cellHeight+10*(z+1);
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ [image_view sd_setImageWithURL:[NSURL URLWithString:img_url]];
|
|
|
|
+ image_view.hidden = NO;
|
|
|
|
+ bi += z+1;
|
|
|
|
+ itop_bi += z+1;
|
|
}
|
|
}
|
|
- image_view.frame = CGRectMake(0, yOffset, imgW, cellHeight);
|
|
|
|
- // 调整偏移量
|
|
|
|
- yOffset += cellHeight+10*(i+1);
|
|
|
|
- });
|
|
|
|
- });
|
|
|
|
- [image_view sd_setImageWithURL:[NSURL URLWithString:img_url]];
|
|
|
|
- image_view.hidden = NO;
|
|
|
|
- bi = i+1;
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (int ci=itop_bi; ci<10; ci++) {
|
|
|
|
+ NYFailItemPointCellView *cellView = [self.itop_view viewWithTag:19+ci];
|
|
|
|
+ cellView.hidden = YES;
|
|
}
|
|
}
|
|
for (int ci=bi; ci<10; ci++) {
|
|
for (int ci=bi; ci<10; ci++) {
|
|
- UIImageView *image_view = [self.item_view viewWithTag:99+ci];
|
|
|
|
|
|
+ UIImageView *image_view = [self.itop_view viewWithTag:79+ci];
|
|
image_view.hidden = YES;
|
|
image_view.hidden = YES;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -80,8 +168,9 @@
|
|
NSString *tag_str = tag.tag;
|
|
NSString *tag_str = tag.tag;
|
|
// 从 XIB 加载 NYFailItemPointCellView
|
|
// 从 XIB 加载 NYFailItemPointCellView
|
|
UIButton *btn = [self.itop_view viewWithTag:29+i];
|
|
UIButton *btn = [self.itop_view viewWithTag:29+i];
|
|
|
|
+ CGSize tag_size = [tag_str rq_sizeWithFont:btn.titleLabel.font];
|
|
btn.hidden = NO;
|
|
btn.hidden = NO;
|
|
- btn.frame = CGRectMake(10, tagitop_yOffset+10*i, 150.f, 25.f);
|
|
|
|
|
|
+ btn.frame = CGRectMake(10, tagitop_yOffset+10*i, tag_size.width + 20.f, 25.f);
|
|
[btn setTitleNormal:tag_str];
|
|
[btn setTitleNormal:tag_str];
|
|
// 调整偏移量
|
|
// 调整偏移量
|
|
tagitop_yOffset += 25.f+10*i;
|
|
tagitop_yOffset += 25.f+10*i;
|
|
@@ -251,36 +340,37 @@
|
|
cellView.hidden = YES;
|
|
cellView.hidden = YES;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- for (int i= 0; i<viewModel.dataModel.questions.images.count; i++) {
|
|
|
|
- NSString *img_url = viewModel.dataModel.questions.images[i];
|
|
|
|
- UIImageView *image_view = [self.item_view viewWithTag:99+i];
|
|
|
|
- __block CGSize imageSize = CGSizeMake(imgW,cellHeight);
|
|
|
|
- dispatch_async(dispatch_get_global_queue(0, 0), ^{
|
|
|
|
- @strongify(self)
|
|
|
|
- // 处理耗时操作的代码块...
|
|
|
|
- imageSize = [UIImage getImageSizeWithURL:img_url];
|
|
|
|
- //通知主线程刷新
|
|
|
|
- dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
- //回调或者说是通知主线程刷新,
|
|
|
|
- if (imageSize.width == 0 || imageSize.height == 0) {
|
|
|
|
- cellHeight = imgW * (175.f / 345.f);
|
|
|
|
- } else {
|
|
|
|
- cellHeight = imgW * (imageSize.height / imageSize.width);
|
|
|
|
- }
|
|
|
|
- image_view.frame = CGRectMake(0, yOffset, imgW, cellHeight);
|
|
|
|
- // 调整偏移量
|
|
|
|
- yOffset += cellHeight+10*(i+1);
|
|
|
|
|
|
+ if(viewModel.dataModel.questions.images.count>0){
|
|
|
|
+ for (int i= 0; i<viewModel.dataModel.questions.images.count; i++) {
|
|
|
|
+ NSString *img_url = viewModel.dataModel.questions.images[i];
|
|
|
|
+ UIImageView *image_view = [self.item_view viewWithTag:99+i];
|
|
|
|
+ __block CGSize imageSize = CGSizeMake(imgW,cellHeight);
|
|
|
|
+ dispatch_async(dispatch_get_global_queue(0, 0), ^{
|
|
|
|
+ @strongify(self)
|
|
|
|
+ // 处理耗时操作的代码块...
|
|
|
|
+ imageSize = [UIImage getImageSizeWithURL:img_url];
|
|
|
|
+ //通知主线程刷新
|
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
+ //回调或者说是通知主线程刷新,
|
|
|
|
+ if (imageSize.width == 0 || imageSize.height == 0) {
|
|
|
|
+ cellHeight = imgW * (175.f / 345.f);
|
|
|
|
+ } else {
|
|
|
|
+ cellHeight = imgW * (imageSize.height / imageSize.width);
|
|
|
|
+ }
|
|
|
|
+ image_view.frame = CGRectMake(0, yOffset, imgW, cellHeight);
|
|
|
|
+ // 调整偏移量
|
|
|
|
+ yOffset += cellHeight+10*(i+1);
|
|
|
|
+ });
|
|
});
|
|
});
|
|
- });
|
|
|
|
- [image_view sd_setImageWithURL:[NSURL URLWithString:img_url]];
|
|
|
|
- image_view.hidden = NO;
|
|
|
|
- bi = i+1;
|
|
|
|
- for (int ci=bi; ci<10; ci++) {
|
|
|
|
- UIImageView *image_view = [self.item_view viewWithTag:99+ci];
|
|
|
|
- image_view.hidden = YES;
|
|
|
|
|
|
+ [image_view sd_setImageWithURL:[NSURL URLWithString:img_url]];
|
|
|
|
+ image_view.hidden = NO;
|
|
|
|
+ bi = i+1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ for (int ci=bi; ci<10; ci++) {
|
|
|
|
+ UIImageView *image_view = [self.item_view viewWithTag:99+ci];
|
|
|
|
+ image_view.hidden = YES;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -374,6 +464,8 @@
|
|
}
|
|
}
|
|
|
|
|
|
- (void)initTbList_view{
|
|
- (void)initTbList_view{
|
|
|
|
+
|
|
|
|
+ self.vm_bm_imageView.image = [UIImage rq_resizableImage:@"blue_jb_bg"];
|
|
UIView *itop_view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, RQ_SCREEN_WIDTH-22*2, 20)];
|
|
UIView *itop_view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, RQ_SCREEN_WIDTH-22*2, 20)];
|
|
itop_view.backgroundColor = UIColor.whiteColor;
|
|
itop_view.backgroundColor = UIColor.whiteColor;
|
|
itop_view.layer.cornerRadius = 5.f;
|
|
itop_view.layer.cornerRadius = 5.f;
|
|
@@ -408,6 +500,13 @@
|
|
label.hidden = YES;
|
|
label.hidden = YES;
|
|
[self.itop_view addSubview:label];
|
|
[self.itop_view addSubview:label];
|
|
}
|
|
}
|
|
|
|
+ for (int i= 0; i<10; i++) {
|
|
|
|
+ UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, RQ_SCREEN_WIDTH-22*2, 0)];
|
|
|
|
+ imageView.tag = 79+i;
|
|
|
|
+ imageView.hidden = YES;
|
|
|
|
+ [self.itop_view addSubview:imageView];
|
|
|
|
+ }
|
|
|
|
+
|
|
// 初始化按钮
|
|
// 初始化按钮
|
|
CGFloat yOffset = 0; // 初始偏移量
|
|
CGFloat yOffset = 0; // 初始偏移量
|
|
CGFloat cellHeight = 1.f; // 每个 Cell 的高度(根据实际设计调整)
|
|
CGFloat cellHeight = 1.f; // 每个 Cell 的高度(根据实际设计调整)
|