美文网首页
项目问题记录

项目问题记录

作者: woniu | 来源:发表于2021-03-15 11:21 被阅读0次

1、有关cell的问题
给cell赋值tag不能直接这样赋值'cell.tag= indexPath.row',这样会导致复用的时候出现问题,tag的值并不是像我们想象的那样,之前也遇到过这种问题。
我们需要直接将相应的row通过方法直接传过来,这样就可以了。
2、代码编写的问题
有时候为了图省事,就忽略掉一些步骤,出现问题解决的时候就显得很棘手,都是一些细节性的问题,以后要多多注意了,想省事很可能并不省事。
3、ceil&floor
ceil:向上取整
floor:向下取整

    double price = 2423.34;
    NSLog(@"~~~~~~~~price:%lf~~~~~%f~~~~~floor:%f",price,ceil(price),floor(price));

2021-03-20 15:36:59.506902+0800 PhoneTest[82022:5986983] ~~~~~~~~price:2423.340000~~~~~2424.000000~~~~~floor:2423.000000
4、字典转模型MJ
走点心吧,太久不用最简单的自己都不知道怎么用了。

//嵌套字典转化
+(NSDictionary *)mj_objectClassInArray {
    return @{@"ad_info": NSStringFromClass([YQArtDetailModel class]),
             @"ads" : NSStringFromClass([YQArtDetailModel class])
             };
}

@end

//特殊字符转化
@implementation YQArtDetailModel
- (void)setId:(NSString *)id {
    _id = id;
    self.ad_id = id;
}
//替换字符
+(NSDictionary *)mj_replacedKeyFromPropertyName
{
    return @{@"descriptionStr": @"description",
             @"ad_name":@"name",
             @"ad_content":@"content",
    };
}
//嵌套字典转化
+(NSDictionary *)mj_objectClassInArray {
    return @{@"adExt": NSStringFromClass([YQArtDetailadExtModel class]),
             };
}
@end

@implementation YQArtDetailadExtModel

@end

5、UITableViewCell中的CollectionViewCell的gif动画在表滑出界面再划回来之后,动画停止。
1、在添加到TableViewCell中的UIView类中,添加刷新方法:

-(void)reload; .h文件
-(void)reload{
    [self.collectionView reloadData];
}

2、在外部tableview滑动的时候,获取当前页面所有的存在的cell,然后所有的cell调用reloadData刷新。

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    [self.starClassView reload];
    [self.myActiveView reload];
    [self.adView reload];
    [self.toolsView reload];
}

对于只有一个img的界面,我们重新进行赋值即可:

-(void)reload{
    if([NSString isLegalString:self.taskListModel.task_detail.icon]){
        [self.imageView sd_setImageWithURL:[NSURL URLWithString:self.taskListModel.task_detail.icon] placeholderImage:[UIImage imageNamed:@"uc_ad_img"]];
    }

6、使用映射的方式调用类方法:


    Class webClass = NSClassFromString(@"FriesWebViewController");
    id webInstance = [[webClass alloc] init];

    if (lesson) {
        [webInstance performSelector:@selector(setLessonModel:) withObject:lesson];
    }

    if (url) {
        [webInstance performSelector:@selector(setLinkUrl:) withObject:url];
    }

    [webInstance performSelector:@selector(setWebPage:) withObject:@((int)type)];

7、一个模块调用另一个模块的方式:
利用映射,获取另一个类的数据参数:

    Class YQPCollectBusinessChecker = NSClassFromString(@"Checker");
        requestUrl = [YQPCollectBusinessChecker performSelector:@selector(joinCourseUrl)];

joinCourseUrl是个类方法,里面放着返回的数据

+(NSString*)joinCourseUrl{
    return KCourse;;
}

也可以设置一个弹框弹出。

8、富文本

   NSString *dayStr = [NSString stringWithFormat:@"%@天",self.classLearnModel.totalStudyDays];
    long dlength = self.classLearnModel.totalStudyDays.length;
    CGFloat dayWidth= [dayStr zySizeWithFont:[UIFont boldSystemFontOfSize:18] constrainedToSize:CGSizeMake(0, 30) lineBreakMode:0].width;
    
    NSMutableAttributedString *dayString = [[NSMutableAttributedString alloc]initWithString:dayStr];
    [dayString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:11/255.0 green:180/255.0 blue:180/255.0 alpha:1.0] range:NSMakeRange(0,dlength)];
    [dayString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:18] range:NSMakeRange(0, dlength)];
    [dayString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:153/255.0 green:153/255.0 blue:153/255.0 alpha:1.0] range:NSMakeRange(dlength,1)];
    [dayString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12] range:NSMakeRange(dlength, 1)];
    NSMutableParagraphStyle *dayParagraphStyle = [[NSMutableParagraphStyle alloc] init];
    [dayString addAttribute:NSParagraphStyleAttributeName value:dayParagraphStyle range:NSMakeRange(0, [dayString length])];
    self.dayLab.textAlignment = NSTextAlignmentCenter;
    self.dayLab.attributedText= dayString;
    [self.dayLab mas_updateConstraints:^(MASConstraintMaker *make) {
        make.width.offset(dayWidth);
    }];

9、按钮上图下文,可以写一个UIButton的类别哦
可以再按钮上添加UIImageView&label,比较自由的设置大小和样式。

10、反射传参

 Class YQPAddCourseChecker = NSClassFromString(@"YQPAddCourseChecker");
                   [YQPAddCourseChecker performSelector:@selector(checkPop:skuType:) withObject:@(NO) withObject:@"shutiao_sku"];

m文件
@implementation YQPAddCourseChecker
+ (void)checkPop:(BOOL)forceDisplay skuType:(NSString *)skuType {
    
    NSString *key = @"YQPAddSubjectsNotifyChecker_1.0";
    
    BOOL haveClickedNoRemind = [[NSUserDefaults standardUserDefaults] boolForKey:key];
    BOOL haveThisSkuType = [[NSUserDefaults standardUserDefaults] boolForKey:skuType];
    
    if ((haveClickedNoRemind || haveThisSkuType) && !forceDisplay) {
        return;
    }
    
    if (skuType.length >= 0) {
        [[NSUserDefaults standardUserDefaults] setBool:true forKey:skuType];
    }
    
    YQPBusinessPopView *pop = [[YQPBusinessPopView alloc] init];
    [pop setTitle:@"已帮你加入我的课程" subTitle:@"下次可以在“孩子”查看我的课程" image:[UIImage imageNamed:@"YQPAddSubjectsNotify"]];
    [pop setNoRemindBlock:^(BOOL isSelected) {
        if(isSelected){
            [[NSUserDefaults standardUserDefaults] setBool:true forKey:key];
        }
    }];
    [pop show];
}

11、字典合并字典
将两个字典合并成一个字典。

    NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"BMW",@"CarLogo",@"Red",@"CarColor", nil];
    NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"Xiaoming",@"name",@"28", @"age",nil];
    [dic1 addEntriesFromDictionary:dic2];

相关文章

  • 记录项目问题总结

    本来这种事情是没有我什么事情的,只是因为昨天吐槽的太多,吐槽的我都不知道我在吐槽神马,汪汪汪!上头很无奈的说,明天...

  • 项目问题记录

    按钮调整布局 搜索框键盘下落 设置部分字段不同字体颜色 tableView去除多余行 导航跳转到某一个控制器 导航...

  • 项目问题记录

    一、Git问题我们自己制作的第三方库如果没有发布到Cocoapods上,而我们又要在Podfile中引用,那么我们...

  • 项目问题记录

    在做企业项目时遇到的问题记录: 问题一:在写这个ul代码时遇到设置float:left,float:right无法...

  • 项目问题记录

    1、有关cell的问题给cell赋值tag不能直接这样赋值'cell.tag= indexPath.row',这样...

  • AAPT: error: resource attr/motio

    问题记录 记录项目中的一个问题,不知什么时候,运行项目会出现这个错误: 解决方法 buildscript { ...

  • iOS 运行报错笔记

    纯个人记录运行项目报错笔记记录 一、问题1 解决办法:问题原因:导入库引入问题解决的办法就是在项目的target里...

  • RABC项目问题记录

    新建项目 新建maven开始项目的时候,会报错,因为没有webxml.项目右击-properties,projec...

  • 项目Swing问题记录

    1、Swing的基本概念是什么? 答:Swing是java中的GUI工具包。是为解决AWT存在的问题而新开发的图形...

  • 【日常项目问题记录】

    1.window api window.atob() 用于解码使用 base-64 编码的字符串 window....

网友评论

      本文标题:项目问题记录

      本文链接:https://www.haomeiwen.com/subject/rbfkcltx.html