Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
#1

Где didMoveToSuperview в UITableViewController? - Objective-C

03.11.2014, 21:51. Просмотров 823. Ответов 8
Метки нет (Все метки)

мне в нескольких контроллерах вида нужен индикатор загрузки данных по центру экрана
чтоб не настраивать его каждый раз, я сделал класс со всеми настройками
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@implementation NewsLoadingActivityIndicatorView
 
- (id) init
{
    self = [super initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    self.backgroundColor = [UIColor colorWithRed:0.45 green:0.45 blue:0.45 alpha:1.0];
    self.layer.cornerRadius = 5.0f;
    return self;
}
 
- (void) didMoveToSuperview
{
    self.translatesAutoresizingMaskIntoConstraints = NO;
    [self.superview addConstraint:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.superview attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:1.0]];
    [self.superview addConstraint:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.superview attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:1.0]];
    [self.superview addConstraint:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:55.0]];
    [self.superview addConstraint:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:55.0]];
    [self startAnimating];
}
 
@end
вопрос в том где добавить этот индикатор активности в UITableViewController
из-за применения NSLayoutConstraint это надо делать в didMoveToSuperview вида, но как туда попасть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2014, 21:51     Где didMoveToSuperview в UITableViewController?
Посмотрите здесь:

Баги в приложении на UITableViewController - Программирование iOS
Здравствуйте! Помогите, плз, отловить баги в табличном приложении! Баг №1 - когда скролю вью вниз, потом обратно накалывается...

Navigation controller (UITableviewController вместо UIViewController) - Программирование iOS
Доброго времени суток. Создал первое TabbedApp. Добавляю в проект элемент navigation controller. Он состоит из двух элементов: view...

Что где использовать? Где ID, где class? - HTML, CSS
Здравствуйте. Всегда использовал в <head> <body> ID, а в остальных местах class, но после изучения JS, понял, что нужно менять...

Вывести массив, где каждый элемент равен 2*x^2-10, где х меняется от 5 с шагом 0,5 - Turbo Pascal
Здравствуйте!помогите с задачкой! Вывести одномерный массив из 10 элементов,где каждый элемент равен 2*x^2-10,где х меняется от 5 с...

Что такое паттерны, где их применяют и где прочитать о них? - C++
Насколько я понимаю, паттерны - это шаблон. Т.е. уже кем-то написанный код, который хорошо работает и не занимается любовью с головным...

Вычислите значение отношений напишите, где истина а где ложь - Pascal
вычислите значение след отношений напишите где истина а где лож a <> б = в = г = d <= e <= ж trunc (3,9) in з odd...

Где посмотреть Код ценового предложения, или где создать ценовое предложение? - 1С Битрикс
подскажите, что такое "Код ценового предложения." мне необходимо обновить значение цены, пользуюсь для этого CPrice::Update ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
edward_jonson
158 / 158 / 25
Регистрация: 23.02.2011
Сообщений: 392
05.11.2014, 03:13     Где didMoveToSuperview в UITableViewController? #2
"мне в нескольких контроллерах вида нужен индикатор загрузки" - в этих контроллерах добавляете:
Objective-C
1
2
3
4
5
6
7
8
@property (nonatomic, strong) NewsLoadingActivityIndicatorView * newsLoadingActivityIndicatorView;
...
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.newsLoadingActivityIndicatorView = [[NewsLoadingActivityIndicatorView alloc] init];
    [self.view addSubview self.newsLoadingActivityIndicatorView];
}
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
17.11.2014, 18:24  [ТС]     Где didMoveToSuperview в UITableViewController? #3
если так написать, то во время исполнения возникает ошибка:
2014-11-17 19:19:33.671 News[511:3503] *** Assertion failure in -[UITableView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2935.137/UIView.m:8794
2014-11-17 19:19:33.675 News[511:3503] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. UITableView's implementation of -layoutSubviews needs to call super.'
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
17.11.2014, 20:35     Где didMoveToSuperview в UITableViewController? #4
Поставь точки останова и отпишись, в каком месте падает приложение. И посмотри, если у тебя есть метод
Objective-C
1
- (void)layoutSubviews
вызови в нем
Objective-C
1
 [super layoutSubviews];
. У тебя автолейаут включен или отключен? И кстати:что если тебе не создавать новый класс, а просто расширить категорию добавив в в класс UItableViewController/viewController это метод и потом просто его вызывать? Zulkis поправит меня если я где-то не прав)
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
17.11.2014, 22:27  [ТС]     Где didMoveToSuperview в UITableViewController? #5
падает на строке:
Objective-C
1
[self.window setRootViewController:sideMenu];
в каком классе должен быть метод layoutSubviews ?

я сейчас упростил код и добавляю NSLayoutConstraint в контроллере вида
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
18.11.2014, 00:46     Где didMoveToSuperview в UITableViewController? #6
Сходу так сейчас не скажешь, в чем проблема. Нужно отлаживать и смотреть. Залей проект на gihub и ссылку кинь. Завтра посмотрю, если сам не разберешься. Щас спать буду уже просто
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
18.11.2014, 01:13  [ТС]     Где didMoveToSuperview в UITableViewController? #7
никогда не пользовался gihub, выкладываю сюда
я сделал пустой проект с минимумом кода, буквально несколько строк
Вложения
Тип файла: zip Test4.zip (27.0 Кб, 13 просмотров)
vitalik_a
4 / 4 / 1
Регистрация: 11.09.2014
Сообщений: 81
18.11.2014, 04:14  [ТС]     Где didMoveToSuperview в UITableViewController? #8
я заменил UITableViewController на UIViewController и заработало
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2014, 09:52     Где didMoveToSuperview в UITableViewController?
Еще ссылки по теме:

This. Для чего он? И где лучше использовать, а где не желательно - C#
Дл я чего используют this? И где лучше использовать, а где не желательно?

промежутки между тэгами - где text, a где undefined - JavaScript
Я много раз сталкивался с тем, что иногда броузер видит undefined между тэгами, иногда - text. В каких случаях и что он видит? Заранее...

как програма понимает где переменая, а где ее адрес - Assembler
STR_BYTE_HELLO BYTE "BYTE HELLO",0 push 0FFFFFFFFh push offset STR_BYTE_HELLO в отладике это выглядит так...

Где нужно в коде использовать кавычки, а где апостроф - C#
Чем отличаются " от ' ? Этот код не работаетstring str = "My name is Andrey!"; string arr = str.Split(" "); а вот этот...

Не могу понять, где вдув, где выдув - Охлаждение
Добрый день. Не могу понять, где вдув, где выдув на куллере? И как установить, какой стороной?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
18.11.2014, 09:52     Где didMoveToSuperview в UITableViewController? #9
Ну хорошо, что заработало) Надо быть внимательнее)
Yandex
Объявления
18.11.2014, 09:52     Где didMoveToSuperview в UITableViewController?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru