我有一个表视图,我想通过使用以下代码在其上添加图像
首先覆盖layoutSubviews
- (void)layoutSubviews{
[super layoutSubviews];
self.imageView.frame = CGRectMake(15, 5, 50, 45);
self.imageView.layer.cornerRadius = 5.0f;
self.imageView.layer.masksToBounds = YES;
self.imageView.contentMode = UIViewContentModeScaleAspectFill;
}
然后在-(MyTableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
NSString *imageUrlString = [userInfoResponse[indexPath.row - beginIndex] objectForKey:@"image_url"];
NSURL * imageURL = [NSURL URLWithString:imageUrlString];
if ( [[NSUserDefaults standardUserDefaults] objectForKey:imageUrlString] == nil ) {
[[NSUserDefaults standardUserDefaults] setObject:[NSData dataWithContentsOfURL:imageURL] forKey:imageUrlString];
}
UIImage * img = [UIImage imageWithData:[[NSUserDefaults standardUserDefaults] objectForKey:imageUrlString]];
cell.imageView.image = img;
}
在这一行我添加了
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 55.0;
}
它可以解决这个小问题(见附图)。我不希望单元边框线被图像中断。
我试过玩代码,但它不会有帮助。谁知道答案?请帮忙。感谢
注意:它适用于iOS 6,此屏幕截图位于iOS 7上。它可以是iOS 7 UITableView
的新设置吗?
答案 0 :(得分:11)
转到表格视图控制器并将这些代码放入viewDidLoad:
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) //should check version to prevent force closed
{
self.tableView.separatorInset = UIEdgeInsetsZero;
}
答案 1 :(得分:1)
如果您不想调整UITableViewCell
的高度,请在cellForRowAtIndexPath
内使用:
[cell clipsToBounds:YES];
答案 2 :(得分:1)
以上答案都没有完全延伸整个屏幕的边框。实现此目的的唯一方法是在ViewController中粘贴下面的代码:
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
-(void)viewDidLayoutSubviews {
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
}
}
答案 3 :(得分:0)
您的表格查看单元格太小。在控制器中实现此方法并调整单元格的高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 60.0;
}
答案 4 :(得分:0)
在viewDidLoad中:
[self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];