iOS CustomTableViewCell:元素不能正确alignment

我在构build应用程序时第一次学习iOS 。 在其中一个要求中, UITableViewCell需要看起来像
在这里输入图像说明 (PS:这只是一个devise,没有代码是为此写的)

但是,当我devise我的UITableViewCell ,它看起来像

在这里输入图像说明
在这里输入图像说明在这里输入图像说明在这里输入图像说明

和生成这个代码看起来像

 - (void)setTransactionCell:(TransactionCell *)transactionCell transactionModel:(TransactionModel *)transactionModel { transactionCell.dateOfMonth.image = [self getDayImage:[UIImage imageNamed:@"1"]]; transactionCell.dayOfWeek.image = [self getDayImage:[UIImage imageNamed:@"Sun"]]; transactionCell.name.text = transactionModel.name; transactionCell.name.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:15]; transactionCell.amount.text = transactionModel.amount; transactionCell.amount.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:15]; transactionCell.categoryImage.image = [self getCategoryImage:[UIImage imageNamed:transactionModel.category]]; transactionCell.imageView.contentMode = UIViewContentModeCenter; } - (UIImage *)getDayImage: (UIImage *) image { UIGraphicsBeginImageContextWithOptions(CGSizeMake(30, 30), NO, 0); [image drawInRect:CGRectMake(0, 0, 15, 15)]; UIImage *im2 = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return im2; } - (UIImage *)getCategoryImage:(UIImage *)image { UIGraphicsBeginImageContextWithOptions(CGSizeMake(40, 40), NO, 0); [image drawInRect:CGRectMake(0, 0, 36, 36)]; UIImage *im2 = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return im2; } 

最后当我运行应用程序,我明白了
在这里输入图像说明

我是相当新的,不知道什么是错的。 我拼命尝试拖动标签和图像到每一个可能的组合,但没有任何工作。 我错过了一些真正基本的东西,你能指导一下什么是错的?

xib上的对象每个对象至less需要4个约束。 当标签/ UIImageView对象周围出现橙色线时,这意味着约束丢失或冲突,通常意味着图像在运行时不会像您期望的那样显示。

对约束进行sorting最简单的方法是使用界面生成器。首先,我build议select每个对象,并通过从IB底部的图标行中select选项来清除当前约束(请参阅下图)

在这里输入图像说明

一旦清除,添加新的约束再次select对象,并select左侧的图标,您可以清除约束(交叉 – 请参阅select)

在这幅图中,你会看到一个popup窗口给你添加约束的选项,在这种情况下,我select了UILabel的左上侧和右上侧的空间约束。 您可以通过为特定约束select弹簧来实现此目的,并且会变成橙色以显示它已被选中。 (这满足了所需的最小4个约束中的两个)。 接下来的两个约束(因为我不希望UIlabel在那里resize)是约束高度和宽度。 (在方框中打勾select每个)

在这里输入图像说明

这将不得不为您的xib上的每个UI对象重复。 一旦它有适当的限制,行将全部是蓝色的,这意味着没有任何警告(见下图 – UIImageView的约束高亮显示蓝色)

在这里输入图像说明

我希望这可以帮助你,但我build议你阅读更多的自动布局约束。 它们可以是非常有用的,当你把它们挂起来,甚至可以animation等等