私は非常に奇妙な問題を抱えています。上半分が UITableView で、下半分がページングが有効な UIScrollView であるというビューがあります (合計 2 ページ) したがって、基本的に、TableView のセルの 1 つをタップすると、データが下のビューに入力されます。UITableView に入力するリクエストを Web から取得しています。
アプリケーションをロードすると、すべてが正常に機能し、更新が正常に機能します。何らかの理由で、テーブルビューからセルを削除してリロードを実行すると、スクロールビューのページングが応答しなくなります...何が原因なのかわかりません。データは引き続きビューに取り込まれますが、他の情報のビューにページングすることはできません。
更新を実行するときにどのコードを投稿すればよいかわかりません。これを行うだけです:
[Request allOpenRequestsWithBlock:^(NSArray *requestsFromWeb, NSError *error) {
if (error) {
[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) message:[error localizedDescription] delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"OK", nil), nil] show];
[self performSelector:@selector(stopLoading) withObject:nil afterDelay:1.0];
} else {
NSLog(@"Number of Open Requests: %d", [requestsFromWeb count]);
[self.openRequestFromNet removeAllObjects];
self.openRequestFromNet = [NSMutableArray arrayWithArray:requestsFromWeb];
[self.tableView reloadData];
//self.openRequestLoaded = true;
[self performSelector:@selector(stopLoading) withObject:nil afterDelay:1.0];
}
} forEID: idNumberFromLogin];
openRequests の数が openRequests の最初の数と異なる場合、ScrollView はフリーズしますが、スクロールビューはデータで更新され、ページングだけがなくなります。
理由がわからない!?
UITableViewController クラスが UIScrollView に影響を与えるのは、NSNotification を送信して ScrollView 内にビューを設定するときだけです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MyOpenRequestCell *cell = [[MyOpenRequestCell alloc] init];
cell = (MyOpenRequestCell *)[self.tableView cellForRowAtIndexPath:indexPath];
[[NSNotificationCenter defaultCenter] postNotificationName:kMyDidSelectNotification object:[cell.requestID text]];
}
おそらくポインターの問題であると感じていますか?しかし、実際には、内部の UIScrollView/Views で直接使用されていない NSString のみを送信しています。そのリクエスト番号のデータを取得するために別の呼び出しを行うために使用されます。
ありがとう!