UI重新生成的问题

来源:6-1 UI课程总结

IDKWTS

2017-07-23 11:46:29

http://climg.mukewang.com/59741bb3000117b017800372.jpg

http://climg.mukewang.com/59741bb80001207417540798.jpg

http://climg.mukewang.com/59741bba0001a70b18180710.jpg

就是接着上次的那个问题 我这样重新生成UI但是当效果触发了之后 只是之前的UI被remove掉了而已 并没有重新生成

写回答

2回答

Tender10

2017-07-24

-(void)createAnswerButton:(IdiomModal *)modal{
    //2.1在创建之前,吧答案区域的所有按钮都删掉
    for (UIButton *btn in self.answerView.subviews) {
        //调用btn的 删除方法
        [btn removeFromSuperview];
    }
    
    //2.2创建按钮
    for (int i=0; i<modal.answer.length; i++) {
        //创建按钮
        UIButton *ansButton=[UIButton buttonWithType:UIButtonTypeCustom];
        
        //计算Frame
        CGFloat ansbtnMarin=15;//按钮之间的间距
        CGFloat ansbtnW = 44;//宽度
        CGFloat ansbtnH = 44;//高度
        CGFloat leftRightMargin=(self.view.frame.size.width-ansbtnW*modal.answer.length-ansbtnMarin*(modal.answer.length-1))/2;
        //计算X坐标
        CGFloat ansbtnX =leftRightMargin+i*(ansbtnW+ansbtnMarin);
        CGFloat ansbtnY = 0;
        ansButton.frame=CGRectMake(ansbtnX, ansbtnY, ansbtnW, ansbtnH);
        
        //设置按钮的样式 两种状态设置
        [ansButton setBackgroundImage:[UIImage imageNamed:@"btn_answer_highlighted"] forState:UIControlStateHighlighted];
        [ansButton setBackgroundImage:[UIImage imageNamed:@"btn_answer"] forState:UIControlStateNormal];
        
        //添加到答案区域的View中
        [self.answerView addSubview:ansButton];
        
        //为按钮绑定点击事件
        [ansButton addTarget:self action:@selector(didClick:) forControlEvents:UIControlEventTouchUpInside];
        
        //设置按钮的文字颜色
        [ansButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    }
    
}

建议在创建答案区域按钮的方法里,一开始就清除按钮,然后紧接着在执行下面for循环遍历创建按钮的方法。你之前在上一个问题中贴出了一个for循环创建视图的方法,在那个for循环创建之前,先清除一下。没有重新生成的还有一个原因就是获取下一题model的时候出现了问题。

0
hender10
回复
hDKWTS
h 好的,到时候给你解决这个问题,详情到时候可以查阅批复文档。
h017-07-24
共2条回复

Tender10

2017-07-23

代码的执行顺序应该是先清除,清除完紧接着执行加载按钮的代码。

0
hDKWTS
h 对呀 我用的加载按钮的代码是[ levelcontrol trigger]; 之前已经清除了啊
h017-07-24
共1条回复

0 学习 · 1878 问题

查看课程

相似问题

回答 3

UI的问题

回答 1

回答 2