iOS开发实用技术iOS开发技术

工作中一些`别致`bug的解决方式

2017-09-12  本文已影响45人  flowerflower

一.关于选中不选中问题的处理方式

需求:默认选择第一个,其次单机那个选择那个
1.首先在Model层使用BOOL声明一个变量是来记录是否选中

//标记是否是被选中
@property (nonatomic, assign) BOOL selectedFlag;

2.在获取数据之后默认选择第一个

[[self.giftBagDataArr firstObject] setSelectedFlag:YES]; //默认选中第一个

3.在didSelectItemAtIndexPath方法中遍历数据

    for (LYNoticeModel *model in self.giftBagDataArr) {
        
        model.selectedFlag = NO;
    }
    if (self.giftBagDataArr.count <= 0) return;
    LYNoticeModel *noticeModel = self.giftBagDataArr[indexPath.row];
    noticeModel.selectedFlag = YES;

4.在cell中的操作如下:

- (void)setModel:(LYNoticeModel *)model{
  if(!model)return;
    _model = model;
    self.nameLabel.text = model.title;
    if (model.selectedFlag) {
        [self selectedCell];
    }else{
        [self unselectedCell];
    }
}
- (UIBezierPath*)path{
    if (!_path){
        _path = [UIBezierPath bezierPathWithRoundedRect:self.background.bounds cornerRadius:2];
    }
    return _path;
}
//单元格是选中状态
- (void)selectedCell{
    self.background.layer.shadowColor = kColorMainRed.CGColor;
    self.background.layer.shadowPath = self.path.CGPath;
    self.background.layer.shadowOpacity = 1;
}
//单元格不是选中状态
- (void)unselectedCell{
    self.background.layer.shadowOpacity = 0;
}
- (void)initUI{
    self.background = [[UIView alloc]init];
    [self addSubview:self.background];
   ...//初始化其他UI控件
}

二.关于collection选中与选中问题,其中最后一个是输入框

需求:默认选择第一个,其次单机那个选择那个,重点在于最后输入框的选中
可能出现的问题

三.关于一个奇葩键盘弹起中的一个奇葩问题

起因:来自于禅道上提出bug

Snip20170522_4.png
经过:首先对于这个bug,我拿自己手机6s测的时候没没有出现类似问题,然后同事拿自己这个5s就出现了这个问题,但是奇葩的是,有一个界面跟这个是公用的,但是那边却能弹出键盘。同事看了许久同时也检查了代码,木有发现问题,于是叫我看一下,我同样的去检查了下代码,答案是一样的。在此之前键盘是可以弹出出来的,后来测试妹子说很难点着,同事就稍微将那个_inputTextF的高度改了下。但是千想万想没有想到是这里的错,另一个界面的公用的却能弹,最后还是使用Beyond Compare对比工具才试出来的。对于这个奇葩的bug,得好好记住,省的下次再犯。 Snip20170519_1.png

四.关于使用SDWebImagView中其中又有gif的图的处理方式

参考之前写的文章

五.cookie莫名为空了

此次两台测试机在蒲公英拉下来的包都没有数据,在此之前打的包都是有数据的,于是在看我们的自己的手机是有数据的,所以说明不是后台挂了,于是乎就拿测试机跑到我们手机上,发现cookie为空,自己找了好久的问题,终究没有想明白为啥会空,之前都是好好的,怎么要到快上线的时候出现这么奇葩的问题,结果换了一个Wifi,神奇的事情出现了,数据有了。接着拿另一台手机换了个Wift也有了数据,但是这个神奇又奇葩的问题,我到现在还是一种懵逼的状态

七.键盘如果是手写键盘则会出现灰色一条大概高为40的框框

详情参考,类似这种效果。
经过:
出现的问题:

1234.gif 12345.gif

解决方式:
让子公司的同事去掉了那几行代码,重新打了个静态库过来就好了。

八.高度frame始终有问题,打印看高度又是正常的

由于游戏划账和兑换乐盈券是动态获取的,故我的界面的数据并不是死数据,高度也是随着后台的返回来判断是否显示。切换TabBar的时候,第一次高度不对,再切换一次就正常了。
如图:

Snip20170629_7.png
一句代码搞定(用xib做的,故在awakeFromNib添加下面那行代码即可)
- (void)awakeFromNib{
    [super awakeFromNib];
    self.autoresizingMask = UIViewAutoresizingNone;
}

九.在iPhone5显示不正常,在iPhone6显示正常

Snip20170629_9.png
解决方式:
-(void)setFrame:(CGRect)frame{
    //空出我的页面中间的的菜单栏
    frame.origin.y += 40;
    
    frame.size.height += 1 * 40;
    
    frame.origin.x = 0;
    frame.size.width = LYScreen_Width;
    
    [super setFrame:frame ];
}

上一篇 下一篇

猜你喜欢

热点阅读