以编程方式将UILabel彼此相邻放置 [英] Placing UILabels next to each other programmatically

查看:49
本文介绍了以编程方式将UILabel彼此相邻放置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有三个宽度不一的UILabel,我想彼此排成一行.如何获取框架的X值?

I have three UILabels of varying widths that I'd like to line up next to each other. How do I get update the frame's X value?

这就是我所拥有的:

UILabel *contractLabel = (UILabel *) [cell viewWithTag:200];
contractLabel.text = [board getDisplayLevel];

UILabel *contractSuit = (UILabel *) [cell viewWithTag:201];
contractSuit.text = [board getDisplayStrain];
contractSuit.textColor = [board getDisplayStrainColor];
contractSuit.hidden = NO;
contractSuit.frame = CGRectMake(contractSuit.frame.origin.x = contractLabel.frame.origin.x + contractLabel.bounds.size.width + 3, contractSuit.frame.origin.y, contractSuit.frame.size.width, contractSuit.frame.size.height); // line 121

UILabel *contractTail = (UILabel *) [cell viewWithTag:202];
contractTail.text = [board getDisplayContract];
contractTail.hidden = NO;
contractTail.frame.origin.x = contractSuit.frame.origin.x + contractSuit.bounds.size.width + 3; // line 127

对框架的两次分配均失败,并显示以下信息:

Both assignments to the frame fail with:

ViewBoards_ViewController.m:121: error: lvalue required as left operand of assignment
ViewBoards_ViewController.m:127: error: lvalue required as left operand of assignment

我在做什么错了?

推荐答案

您有一个简单的错字

contractSuit.frame = CGRectMake(contractSuit.frame.origin.x = contractLabel.frame.origin.x + contractLabel.bounds.size.width + 3, contractSuit.frame.origin.y, contractSuit.frame.size.width, contractSuit.frame.size.height);

应该是

contractSuit.frame = CGRectMake(contractSuit.frame.origin.x + contractLabel.frame.origin.x + contractLabel.bounds.size.width + 3, contractSuit.frame.origin.y, contractSuit.frame.size.width, contractSuit.frame.size.height);

这篇关于以编程方式将UILabel彼此相邻放置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆