[英]Can't scroll UITableView to bottom
編輯
這就是發生的事情,所以你可以看到:http: //youtu.be/v1HrxYhzJZY 。
這是我的情景:
我有一個UITableView
有5個部分和12個單元格。 這個視圖是用push segue
打開的,一切正常,滾動等等。
其中三個單元格打開MKMapView
視圖(通過push segue
),另一個單元格彈出一個MFMailComposeViewController
。
當我嘗試回到我的UITableView
我無法再滾動到底部。 我只能滾動一下 ,然后返回到我的tableview的頂部。
我試圖在viewWillAppear
上設置幀大小,我試圖重新加載tableView
但它不起作用!
什么可能導致這個問題?
編輯
我的實施是:
- (void)viewDidLoad {
loaded = NO;
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"my_url", self.userID]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
loaded = YES;
self.user = JSON;
[self setUserValues];
[self.tableView reloadData];
} failure:nil];
[operation start];
[super viewDidLoad];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView setContentSize:CGSizeMake(320, 420)];
}
我用這個簡單的代碼自己解決了這個問題:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.tableView reloadData];
}
不管怎么說,還是要謝謝你!
viewWillAppear:
方法太早,無法滾動表視圖。 視圖尚未添加到屏幕視圖層次結構中並已布局。 嘗試在viewDidLayoutSubviews
執行此操作。
使用以下代碼將tableView滾動到所需的部分/行:
[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:desiredRow inSection:desiredSection] atScrollPosition:UITableViewScrollPositionTop animated:NO];
要滾動繼承自UIScrollView
的tableView,您需要使用[self.tableView setContentOffset:CGPointMake(0,100) animated:YES];
而不是setContentSize
我也經歷過這個。 從子視圖返回,表視圖不再可滾動(它總是會反彈到頂部)。 我的孩子視圖沒有像你這樣的地圖視圖。
重新加載表視圖並不能解決它。
該錯誤僅在iOS 7中顯示,而不是6.1。
我正在訪問topLayoutGuide
...刪除該訪問權限(只是一個屬性讀取!)解決了這個問題。 WTF! 必須是一個神奇的財產。
我昨天也遇到了這個問題! 我剛才修好了!
我將UITableView拖到UIViewController上,只是選擇add missing contraints
。 當我運行應用程序時,UITableView無法滾動到底部。
我用Google搜索並在Stackoverflow中看到了類似的問題 。
然后我檢查了UITableView的約束,我發現有一個禁令設置了UITableView的固定高度。 然后我刪除了約束並添加了另一個: Bottom Space to: Bottom Layout Guide = 0
。
解決方案適合我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.