我有UITableViewCell *cell
,其中包含UIImageView *image
和UILabel *description
个子视图。描述标签位于单元格的上半部分,我需要在标签和底边之间找到UIImageView
。这是我的代码:
CGFloat bottomTextY = cell.labelDescription.frame.origin.y + cell.labelDescription.frame.size.height;
CGFloat newImageY = bottomTextY + (cell.frame.size.height - bottomTextY) / 2;
cell.image.center = CGPointMake(cell.image.center.x, newImageY);
但每次位置不同时,标签与边缘之间并不严格。 Autolayout已关闭。求你帮我!)
答案 0 :(得分:0)
为了让您的生活更轻松,您应该在故事板中设计您的单元格(原型单元格)。该单元格将包含您的两个字段(图像和文本)。然后标记您的字段和
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
添加如下内容:
UIImageView * imageView = (UIImageView *)[cell viewWithTag:CELL_TAG_PHOTO];
imageView .image = [self.photoSource objectForKey:key] ;
当然,每个元素的标记(数字)必须是唯一的,因为这是标识元素的方式(用#define CELL_TAG_PHOTO (tag_number)
定义它们)
答案 1 :(得分:0)
设置UIImageView的框架,而不是中心属性。
示例:
cell.imageView .frame = CGRectMake(0, CGRectGetMaxY(cell.descriptionLabel.frame), cell.frame.size.width, cell.frame.size.height - CGRectGetMaxY(cell.descriptionLabel.frame));