我在包含标签和imageView的高度为300的故事板中制作了一个自定义单元格,但对于某些情况下,如果我没有收到响应图像,我想降低单元格高度并想从单元格中移除imageView因此用户无法看到它。 在这种情况下,我只想显示标签中的文字。 我怎么能做到这一点?我知道这个愚蠢的问题,但我被困在这里。 您的帮助,将不胜感激。 谢谢如何在Objective C中减少运行时UITableViewCell的大小?
0
A
回答
0
我已经写了一些基本的代码来了解如何表视图单元格调整大小工作(不相关的自定义或基本单元格)。
@interface MasterViewController()
@property NSArray *objects;
@end
@implementation MasterViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_objects = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ImageList" ofType:@"plist"]];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table View
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return _objects.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
NSDictionary *object = _objects[indexPath.row];
cell.textLabel.text = object[@"text"];
cell.imageView.image = [UIImage imageNamed:object[@"image"]];
return cell;
}
//- (NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
// return _objects.allKeys[section];
//}
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the specified item to be editable.
return YES;
}
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return [_objects[indexPath.row][@"image"] length] ? 60.0f : 30.0f;
}
@end
在上面的代码中,你首要重点应放在方法heightForRowAtIndexPath
,它的代码行return [_objects[indexPath.row][@"image"] length] ? 60.0f : 30.0f;
。
现在好像您从服务器动态加载图像,然后跟踪已加载哪个单元的图像,并呼叫[tableView reloadRowsAtIndexPaths:<#(nonnull NSArray<NSIndexPath *> *)#> withRowAnimation:<#(UITableViewRowAnimation)#>]
以及相关索引路径。同时请确保您在dataSource
中更新image loaded
信息,即上述代码中的_objects
。
我已经上传code here。在工作区检查UITableViewTest
。
相关问题
- 1. 减少会话大小运行时间
- 2. 在Java中减少运行时的最大堆栈大小
- 3. 减少C#中的位图位大小#
- 4. 如何减少UIImage大小...?
- 5. 如何减少jar大小
- 6. 如何减少UICollectionView大小
- 7. 如何减少编程在C#中的XML文件的大小
- 8. 如何减少apk中的GMS大小
- 9. 在运行时(objective-c),你如何将UIPickerView放入调整大小的UIView中?
- 10. 如何减少浏览器大小时的图像大小。
- 11. 如何减少UITableViewCell中ContentSize的宽度
- 12. Python)如何减少解析大数据集的运行时间
- 13. 如何减少我的ArrayList的大小?
- 14. Python:如何减少运行时间?
- 15. 减少BitmapDrawable大小
- 16. 减少TimePicker大小
- 17. 如何减少C#中的图像大小?
- 18. 如何减少C++中数据的内存大小?
- 19. 如何减少libskiasharp.so的大小?
- 20. Qt - 如何减少“捆绑”的大小?
- 21. 如何减少gensim的字典大小?
- 22. 如何减少HDFStore的大小开销?
- 23. 如何减少android的张量大小?
- 24. 如何减少图片的大小?
- 25. 减少运行时间
- 26. 如何在调用API时减少C#中的执行时间?
- 27. 减少listitem的大小?
- 28. Docker - 减少拉的大小
- 29. 减少objective-c中静态库大小的最佳实践是什么?
- 30. 减少纹理的大小
只需在heightForRowAtIndexPath上添加条件即可。 如果图像不存在然后降低高度 –
但在imageview下我也有按钮...如果我降低高度它也会隐藏它。 –
然后,您需要更改cellforrowatindexpath中按钮的框架。相应地减少按钮的y值。 –