原本写好的一个自定义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);
}