ios开发中的UIScrollerView动态改变及UIimage的动态改变

        今天在项目中用到了动态适配文本的高度,特此记下,以便下次方便使用……



- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [self drawScrollViewContentParaWithQ:@"UIScroolerView" A:@"根据文本的多少动态调整UIScroolerView"];
    // Do any additional setup after loading the view from its nib.
}

- (void) drawScrollViewContentParaWithQ:(NSString*)question_ A:(NSString*)answer_
{
    //  初始化问题的背景图
    UIImageView *ui_imgV_Qbg = [[UIImageView alloc] init];
    [ui_imgV_Qbg setImage:[UIImage imageNamed:@"img_online_question_bg.png"]];
    
    //  问题ICON
    UIImageView *ui_imgV_QIcon = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 30, 40)];
    [ui_imgV_QIcon setImage:[UIImage imageNamed:@"img_online_question_icon.png"]];
    [ui_imgV_Qbg addSubview:ui_imgV_QIcon];
    //  问题内容
    UILabel *ui_labelQ = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
    UIFont *ui_fontQ = [UIFont fontWithName:@"Arial" size:18];
    CGSize sizeQ = CGSizeMake(240,2000);
    [ui_labelQ setBackgroundColor:[UIColor clearColor]];
    [ui_labelQ setTextColor:[UIColor colorWithRed:102/255.f green:102/255.f blue:102/255.f alpha:1]];
    [ui_labelQ setNumberOfLines:0];
    [ui_labelQ setFont:ui_fontQ];
    [ui_labelQ setText:question_];
    ui_labelQ.lineBreakMode = UILineBreakModeWordWrap;
    CGSize labelsizeQ = [question_ sizeWithFont:ui_fontQ constrainedToSize:sizeQ lineBreakMode:UILineBreakModeWordWrap];
    //  判断文字是否在一行上
    CGFloat floatQY = 0;
    if (labelsizeQ.height <= 40) {
        labelsizeQ.height = 40;
    }else{
        floatQY = 10;
    }
    
    [ui_labelQ setFrame:CGRectMake(40, floatQY, labelsizeQ.width, labelsizeQ.height)];
    [ui_imgV_Qbg addSubview:ui_labelQ];
    //  重新设置问题背景的大小
    [ui_imgV_Qbg setFrame:CGRectMake(0, 20, 290, ui_labelQ.frame.size.height + ui_labelQ.frame.origin.y + 10)];
    
    
    
    //  初始化答案的背景图
    UIImageView *ui_imgV_Abg = [[UIImageView alloc] init];
    [ui_imgV_Abg setImage:[UIImage imageNamed:@"img_online_answer_bg.png"]];
    [self.ui_scrollview_question addSubview:ui_imgV_Abg];
    [self.ui_scrollview_question addSubview:ui_imgV_Qbg];
    //  答案ICON
    UIImageView *ui_imgV_AIcon = [[UIImageView alloc] initWithFrame:CGRectMake(6, 10, 18, 20)];
    [ui_imgV_AIcon setImage:[UIImage imageNamed:@"img_online_answer_icon.png"]];
    [ui_imgV_Abg addSubview:ui_imgV_AIcon];
    //  答案内容
    UILabel *ui_labelA = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
    UIFont *ui_fontA = [UIFont fontWithName:@"Arial" size:12];
    CGSize sizeA = CGSizeMake(240,2000);
    [ui_labelA setBackgroundColor:[UIColor clearColor]];
    [ui_labelA setTextColor:[UIColor colorWithRed:102/255.f green:102/255.f blue:102/255.f alpha:1]];
    [ui_labelA setNumberOfLines:0];
    [ui_labelA setFont:ui_fontA];
    [ui_labelA setText:answer_];
    ui_labelA.lineBreakMode = UILineBreakModeWordWrap;
    CGSize labelsizeA = [answer_ sizeWithFont:ui_fontA constrainedToSize:sizeA lineBreakMode:UILineBreakModeWordWrap];
    
    CGFloat floatAY = 0;
    if (labelsizeA.height <= 40) {
        labelsizeA.height = 40;
    }else{
        floatAY = 10;
    }
    
    [ui_labelA setFrame:CGRectMake(40, floatAY, labelsizeA.width, labelsizeA.height)];
    [ui_imgV_Abg addSubview:ui_labelA];
    //  重新设置问题背景的大小
    [ui_imgV_Abg setFrame:CGRectMake(0, ui_imgV_Qbg.frame.origin.y + ui_imgV_Qbg.frame.size.height - 2, 290, ui_labelA.frame.size.height + ui_labelA.frame.origin.y + 10)];
    
    //  设置scrollView大小
    [self.ui_scrollview_question setContentSize:CGSizeMake(280, ui_imgV_Abg.frame.origin.y + ui_imgV_Abg.frame.size.height)];
    
    
}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值