iOS通过网络请求获取数据计算添加在控制器View上的自定义的scrollView的UI 总是出错

原本写好的一个自定义scrollView,里面添加了两个控件,包括上面的广告scrollView以及下面的按钮btn,通过传入一个btnCount就能自己计算下面的btn个数来计算frame值和contenSize
在测试的时候UI显示没问题,如下:图片说明
结果通过网络,异步对这个btnCount赋值时,显示的UI就总是出现差错:图片说明
不管在哪里打印出现的frame都没有变化,只有当push一个控制器再pop返回后,这个UI界面才恢复正常,本人初入iOS,望有大神来帮忙解答一下,
BackgroundScrollViewFrame是对应自定义backgroundScrollView的模型,计算backgroundScrollView的frame

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.view.backgroundColor = [UIColor greenColor];

    [self addBackGroundScrollView];

}


- (void)addBackGroundScrollView
{
       //关联对象表
    BmobQuery *bquery = [BmobQuery queryWithClassName:@"subscribeWithNew"];

   //需要查询的列
   BmobObject *post = [BmobObject objectWithoutDatatWithClassName:@"_User" objectId:@"nhRY333E"];
   [bquery whereObjectKey:@"like" relatedTo:post];


    [bquery findObjectsInBackgroundWithBlock:^(NSArray *array, NSError *error) {



         BackgroundScrollViewFrame *scrollViewFrame = [[BackgroundScrollViewFrame alloc] init];
        int btnCount = (int)array.count;
        scrollViewFrame.btnCount = btnCount;
        self.scrollViewFrame = scrollViewFrame;

        BackgroundScrollView *backgroundScrollView = [[BackgroundScrollView alloc] init];
        [backgroundScrollView setBackgroundScrollViewFrame:scrollViewFrame];      

        [self.view addSubview:backgroundScrollView];

        self.backgroundScrollView = backgroundScrollView;     

        self.backgroundScrollView.backgroundDelegate = self;
   }];   
}


我自定义的ScrollView是通过往里面添加的另一个scrollView和下面添加的多个button来计算的整个ScrollView的frame,求大神帮忙解答一下,为什么用异步添加这个BackgroundScrollView就会出现这个问题,整个ScrolView的Y出现了问题,而且点击按钮push一个控制器之后pop返回,UI又整体恢复正常

 #import "BackgroundScrollViewFrame.h"
#import "NewsBtnViewFrame.h"

@implementation BackgroundScrollViewFrame


- (void)setBtnCount:(int)btnCount
{
    _btnCount = btnCount + 1;

    NewsBtnViewFrame *newsBtnFrame = [[NewsBtnViewFrame alloc] init];
    newsBtnFrame.btnCount = _btnCount;
    self.newsBtnFrame = newsBtnFrame;

    CGFloat x = 0;
    CGFloat y = 0;
    CGFloat w = ScreenW;
    CGFloat h = ScreenH ;

    self.artFrame = CGRectMake(0, 0, ScreenW, 120);

    self.frame = CGRectMake(x, y, w, h);

}

2个回答

问题解决了,添加以下代码

- (void)viewWillAppear:(BOOL)animated
{
    [super  viewWillAppear:animated];
    self.automaticallyAdjustsScrollViewInsets = NO;
}

automaticallyAdjustsScrollViewInsets根据自己所在界面的statuBar,navBar,tabBar的高度,自动设置scrollView的inset
设置为no,不让调整

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
iOS 来电时来电号码的获取
3
iOS 使用sdwebimage加载网络图片,获取到的图片大小变大
2
IOS 怎么把scrollView中的控件拖到另一个view中
1
ios开发网络请求问题,求助各位大神
1
iOS 关于 使用 dispatch_group 进行多次网络请求
1
IOS 通过drawrect里面画图,然后在界面上点按钮获取context不一致的问题
2
iOS 开发,是否可以通过私有API 监听来去电话/短信信息、获取浏览器历史纪录
3
iOS渠道追踪获取渠道信息
2
请教大神iOS怎么获取当前手机的基站信息呢,比如lac,ci,rsrp等相关信息, 付费 请教
0
IOS在微信内置浏览器请求获取后台传过来的音频地址播放问题?
1
iOS重写tableview的区头的协议方法,获取区头的索引值,怎么处理?求解
2
iOS 控制器跳转,A跳C,C获取A对象跳转到B,B返回A。
0
iOS+Unity3d+高通AR,iOS中如何获取正在识别的图片的图片名
4
iOS 如何将未发布的APP项目在别人的手机上安装(手机连接到电脑上不算)
3
ios请求url后数据没有办法拿出来
1
ios开发,网络请求获取的json数据解析之后赋值给数组变量,然后返回数组
1
如何实现IOS IPA在线自动签名并且分发呢?
2
iOS开发,从网络中成功获取到数据源,却在UITableView中不显示,求解
1
求一个类似iOS CollectionView可以展示矩阵的Android自定义的view
1
IOS开发,怎么样实现点击按钮请求网络,成功之后进行页面跳转