我在我的圖片UITableViewCell
和更改單元格w.r.t圖像高度的約束後,我想重新加載單元格。如何重新加載UITableViewCell Objective C?
我嘗試了這種方法,但是這個函數花費的時間很少,因此,應用程序暫時停滯不前。
[cell reloadRowsAtIndexPaths:indexPath withRowAnimation:UITableViewRowAnimationNone];
你能告訴我其他approac簡單重裝電池,而不是表的?
我在我的圖片UITableViewCell
和更改單元格w.r.t圖像高度的約束後,我想重新加載單元格。如何重新加載UITableViewCell Objective C?
我嘗試了這種方法,但是這個函數花費的時間很少,因此,應用程序暫時停滯不前。
[cell reloadRowsAtIndexPaths:indexPath withRowAnimation:UITableViewRowAnimationNone];
你能告訴我其他approac簡單重裝電池,而不是表的?
目標C
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
要重新加載部1與例如第2第3行第2行, 你必須這樣做:
NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:2 inSection:1];
NSIndexPath* indexPath2 = [NSIndexPath indexPathForRow:3 inSection:2];
// Add them in an index path array
NSArray* indexArray = [NSArray arrayWithObjects:indexPath1, indexPath2, nil];
// Launch reload for the two index path
[self.tableView reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationFade];
或者你也可以這樣做
[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:@[indexPathOfYourCell] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
// **************************************** *********************************
SWIFT
override func reloadRows(at indexPaths: [Any], with animation: UITableViewRowAnimation) {
}
要重新加載第2節的第2行和第2節的第3行,例如, 您必須執行此操作:
var indexPath1 = IndexPath(row: 2, section: 1)
var indexPath2 = IndexPath(row: 3, section: 2)
// Add them in an index path array
var indexArray: [Any] = [indexPath1, indexPath2]
//Launch reload for the two index path
self.tableView.reloadRows(at: indexArray, with: .fade)
或者你也可以做這樣的
self.tableView.beginUpdates()
self.tableView.reloadRows(at: [indexPathOfYourCell], with: [])
self.tableView.endUpdates()
嘗試完全加載圖像更改單元格高度就裝作什麼
#import <ImageIO/ImageIO.h>
NSMutableString *imageURL = [NSMutableString stringWithFormat:@"http://www.myimageurl.com/image.png"];
CGImageSourceRef source = CGImageSourceCreateWithURL((CFURLRef)[NSURLURLWithString:imageURL], NULL);
NSDictionary* imageHeader = (__bridge NSDictionary*) CGImageSourceCopyPropertiesAtIndex(source, 0, NULL);
NSLog(@"Image header %@",imageHeader);
NSLog(@"PixelHeight %@",[imageHeader objectForKey:@"PixelHeight"]);
之前和之後獲得的圖像尺寸
這個你可以得到圖像大小,調整UIImageView並獲得它的動態高度
爲了能夠異步執行此操作,可以使用YYWebImage
如果根據行爲設置內容擁抱和內容壓縮優先級,則可以實現此功能。即將內容設置爲249,將內容壓縮設置爲751. –
不能在更改所有內容填充後更改行高? –
indexPaths需要數組。你可以使用像這樣的文字:reloadRowsAtIndexPaths:@ [indexPath1] – GeneCode