IPad - как обновить subview на ipad?

64
7

Я добавляю 4 subviews (UIScrollView, UITableView) в основном представлении на ipad, и у каждого представления есть свои собственные данные.

В представлении Marco я пытаюсь перезагрузить данные с сервера каждые 3 секунды, чтобы обновить мой Marco View.

как первый рис..
enter image description here


Я установил 3 значка Марко на главном экране ipad, когда я удалю его по popoverView.

Значки на popoverView действительно удаляют, но по-прежнему отображаются 3 значка на главном экране.

как второй и третий фото...
enter image description here


enter image description here


Это должно быть удаление из фона, а затем открыть приложение, которое будет правильным...
как четвертый рис.

Доза любой знает, что проблема. Я пытаюсь использовать [marco_scrollview setNeedsDisplay].

но это не работа.
Спасибо заранее.

вот мой код, чтобы получить Marcodata:


- (void)getTheMacroURLData{
//[self.view setNeedsDisplay];
// [marco_scrollview setNeedsDisplay];
self.macroList = nil;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
EnvoTouchAppDelegate *appDelegate = (EnvoTouchAppDelegate *)[[UIApplication sharedApplication] delegate];
struct sockaddr_in Addr;
bzero(&Addr, sizeof(Addr));
Addr.sin_len = sizeof(Addr);
Addr.sin_family = AF_INET;
SCNetworkReachabilityRef target = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *) &Addr);
SCNetworkReachabilityFlags flags;
SCNetworkReachabilityGetFlags(target, &flags);
if (flags & kSCNetworkReachabilityFlagsIsWWAN){
//Serial Number not save in the keychain now
NSString *theNewURLString = [NSString stringWithFormat:eGetAllMacrosSettingURL3G,[userDefaults objectForKey:@"ecsn"],appDelegate.udid];
NSURL *theNewURL = [NSURL URLWithString:theNewURLString];
self.macroList = [NSMutableArray arrayWithContentsOfURL:theNewURL];
}
if (flags & kSCNetworkFlagsReachable){
NSString *theNewURLString = [NSString stringWithFormat:eGetAllMacrosSettingURLWiFi,appDelegate.ipString,appDelegate.udid];
NSURL *theNewURL = [NSURL URLWithString:theNewURLString];
self.macroList = [NSMutableArray arrayWithContentsOfURL:theNewURL];
}
int k=0;
for (int i=0; i<[self.macroList count]; i++) {
int j=i%9;
if (j==0) {
k++;
}
UIButton *iconButton=[UIButton buttonWithType:UIButtonTypeCustom];
NSString *picString = [[self.macroList objectAtIndex:i] valueForKey: @"pid"];
UIImage *buttonImage = [UIImage imageNamed:picString];

[iconButton setImage:buttonImage forState:UIControlStateNormal];
[iconButton setTag:i];
[iconButton addTarget:self action:@selector(exeMacro:) forControlEvents:UIControlEventTouchUpInside];
[iconButton setFrame:CGRectMake(30+(i%9*80), 17+((k-1)*70), 48, 48)];
//[self.view addSubview:iconButton];
[marco_scrollview addSubview:iconButton];
if ([self.macroList count] > 18) {
[marco_scrollview setContentSize:CGSizeMake(320, 525 + (([self.macroList count]/4 - 4) * 70) )];
}
}
[marco_view addSubview:marco_scrollview];
}


И я пытаюсь перезагрузить данные каждые 3 секунды..
Я не знаю, почему он не обновляет Marco View..


enter image description here

спросил(а) 2021-01-19T20:40:39+03:00 6 месяцев, 1 неделя назад
1
Решение
110

Дисплей отображает его, как если бы вы где-то использовали таблицу. Если да, вызываете ли вы метод reloadData в представлении таблицы?

ответил(а) 2021-01-19T20:40:39+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема