У меня временная ошибка, которая меня смущает.Будем очень благодарны за любые советы о том, как его отследить или в чем может быть причина.
У меня есть «DetailView» с несколькими метками, представлением изображений и представлением текста.В навигационной панели у меня также есть кнопка камеры, чтобы открыть средство выбора изображений и сделать снимок (позже добавленный в просмотр изображений).Основные вещи.
Иногда при съемке и редактировании текста: весь вид между панелью навигации и клавиатурой становится пустым (к моему цвету фона).Бывает чаще всего «впервые».Повторение процедуры не дает той же проблемы.Происходит почти только на 3Gs (очень редко на 3G и оригинальном iPhone).
У меня есть две теории.
1 заключается в том, что это как-то связано с представлением прокрутки, которое являетсяКонтейнер для исчезающих элементов GUI.Иерархия представления: ScrollView -> UIView -> метки, тексты и изображения.Плохо ли иметь представление прокрутки в качестве «основного» представления?
2 связано с памятью.3Gs имеет лучшую камеру и делает большие снимки ... Возможно, что-то случится, если приложение получит предупреждение о нехватке памяти при съемке (не редкость)?
Возможно ли вообще что-либо из этих двух?Любые другие идеи о том, что искать?
спасибо
Обновление: могут ли две одновременные анимации вызвать ошибку?
В уведомлении KeyboardWillShow я изменяю размер ScrollView с помощью UIView beginAnimations ... commitAnimations и сразу после этого (что, как я полагаю, происходит асинхронно) я также сообщаю представлению прокрутки scrollRectToVisible для TextView.
вот так:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:animationDuration];
[UIView setAnimationCurve:animationCurve];
CGRect rect = [[self view] frame];
rect.size.height -= keyboardFrame.size.height * (up? 1 : -1);
[[self view] setFrame: rect];
[UIView commitAnimations];
// Scroll the active text field into view.
DetailView *tempScrollView = (DetailView *) [self view];
CGRect textFieldRect = [comments frame];
[tempScrollView scrollRectToVisible:textFieldRect animated:YES];