为什么会出现这种UIImage的自定义UITableViewCell旋转为横向时消失?
-
27-09-2019 - |
题
我试图建立一个UITableViewCell可在右上角具有一个图像。
我有它工作肖像模式,但是当我旋转到景观,图像消失。
下面的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UIImage *cornerImage = [UIImage imageNamed:@"star_corner.png"];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(cell.contentView.bounds.size.width - cornerImage.size.width,
0,
cornerImage.size.width,
cornerImage.size.height)];
imageView.tag = kCornerImageViewTag;
[cell.contentView addSubview:imageView];
[imageView release];
}
UIImageView *theView = (UIImageView *)[cell.contentView viewWithTag:kCornerImageViewTag];
[theView setImage: [UIImage imageNamed:@"star_corner.png"]];
cell.textLabel.text = @"the text label";
return cell;
}
有趣的是,如果我注释掉“cell.textLabel.text =”行,图像的确显示景观...虽然它不移动到最右侧。
如果还有别的什么事,我做错了,请让我知道。
预先感谢任何帮助。
解决方案
我这出。该解决方案是创建两个的UIImageView的...一个明星的角落形象,以及一个用于小区的背景图像。
我添加星角的UIImageView作为一个子视图的背景图像的UIImageView,然后分配该至cell.backgroundView。
星的UIImageView位置本身正确地使用的:
starImageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
和由于整个事情被分配给cell.backgroundView(而不是cell.contentView),它不受该单元的删除按钮或重新排序控制。
其他提示
您的UIViewController应didRotateFromInterfaceOrientation响应。
在此方法可以通过细胞循环,按照新的单元尺寸(cell.contentView.bounds)获得与[细胞viewWithTag]所述的UIImageView和修改帧属性。
祝你好运!
不隶属于 StackOverflow