Не удается изменить размер кадра UiscrollView -- ios поле с участием iphone поле с участием uiscrollview поле с участием resize поле с участием frame пол Связанный проблема

Cannot resize UIScrollView's Frame


1
vote

проблема

русский

У меня есть UiscrollView с его рамой и содержимым с таким же размером. Я хочу изменить высоту кадра ScrollView, когда появится клавиатура, но она не работает. Если я изменим положение x или y, все работает нормально, но если я попытаюсь изменить ширину или высоту рамки, все остается прежним, ничего не происходит.

Вот мой код:

 <код> -(void)resizeContentView:(BOOL)resize forOffset:(CGFloat)offset {     [UIView animateWithDuration:0.3f animations:^{         UIView* resizeView = [self getResizingView];         if ( !resizeView )             return;         CGRect rect = resizeView.frame;         if (resize)         {             rect.size.height -= offset;         }         else         {             rect.size.height += offset;         }         resizeView.frame = rect;     }]; }   

Я не использую Autolayout, а будь я использовать анимацию или нет, происходит та же проблема.

Английский оригинал

I have a UIScrollView with it's frame and contentSize with the same size. I want to change the frame height of the scrollView when the keyboard appears, but it does not work. If I change the x or y position everything works ok, but If I try to change the Width or Height of the frame, everything stays the same, nothing happens.

Here's my code:

-(void)resizeContentView:(BOOL)resize forOffset:(CGFloat)offset {     [UIView animateWithDuration:0.3f animations:^{         UIView* resizeView = [self getResizingView];         if ( !resizeView )             return;         CGRect rect = resizeView.frame;         if (resize)         {             rect.size.height -= offset;         }         else         {             rect.size.height += offset;         }         resizeView.frame = rect;     }]; } 

I am not using Autolayout, and whether I use the animation or not, the same problem occurs.

</div
              
   
   

Список ответов

0
 
vote

Попробуйте изменить <код> content size на <код> keyboaardDidAppear уведомления.

 <код> - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; }   

Отредактировано

 <код> -(void)keyboardWillShow:(NSNotification*) notif { NSLog(@"-(void)keyboardWillShow");  [UIView animateWithDuration:2 animations:^{     self.scrollview.frame = CGRectMake(0, 0, self.scrollview.frame.size.width/2, self.scrollview.frame.size.height/3                                        );  } completion:^(BOOL finished) { self.scrollview.backgroundColor = [UIColor redColor]; }];  } -(void)keyboardWillHide:(NSNotification*) notif { NSLog(@"-(void)keyboardWillHide");     self.scrollview.backgroundColor = [UIColor greenColor]; } - (BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES; }   
 

Try changing the content size on keyboaardDidAppear notifications .

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; } 

EDITED

-(void)keyboardWillShow:(NSNotification*) notif { NSLog(@"-(void)keyboardWillShow");  [UIView animateWithDuration:2 animations:^{     self.scrollview.frame = CGRectMake(0, 0, self.scrollview.frame.size.width/2, self.scrollview.frame.size.height/3                                        );  } completion:^(BOOL finished) { self.scrollview.backgroundColor = [UIColor redColor]; }];  } -(void)keyboardWillHide:(NSNotification*) notif { NSLog(@"-(void)keyboardWillHide");     self.scrollview.backgroundColor = [UIColor greenColor]; } - (BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES; } 
</div
 
 
         
         

Связанный проблема

2  Как установить выбранную первую ячейку по умолчанию в Saslidemenu?  ( How to set selected first cell by default in saslidemenu ) 
Я использую этот сценарий для скольжения меню " Saslidemenu ", и я Пытаюсь выбрать первый элемент по умолчанию, но без успеха. Кто-нибудь знает, как это сдела...

0  Как трепетать файлы записи в iOS iPhone "Найти на моем телефоне" Папка  ( How to flutter write files to ios iphone find on my phone folder ) 
Моя цель - позволить моему приложению писать и читать файлы, созданные моим приложением. Например, напишите, а затем разрешите пользователю электронной почты ...

1  Попытка запуска двух процессов одновременно в GCD - iOS  ( Attempting to run two processes simultaneously in gcd ios ) 
Я пытаюсь загрузить два набора данных на заднем плане одновременно через GCD в iOS. В настоящее время я построил две отдельные одновременные очереди, в которы...

376  Как я могу преобразовать Swift Array в строку?  ( How do i convert a swift array to a string ) 
Я знаю, как программно сделать это, но я уверен, что есть встроенный ... Каждый язык, который в котором у меня использовал, имеет какое-то текстовое предста...

0  PDF не загружается из папки документов на приложении Relauch iOS  ( Pdf not loading from documents folder on app relaunch ios ) 
У меня есть PDF, который я загружаю с сервера и сохранил его. Затем я открываю файл из пути файла в <код> UIWebView . Это работает в первый раз, когда я запус...

0  Лучшие практики для запроса / ответа на сетевой вызов в приложении iPhone Программирование [Закрыто]  ( Best practises for network call request response in iphone application programmi ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> <Путь d = "M15 6.38A6.48 6.48 0 007.78. 04H-.02A6.49 6.49 0 002.05 ...

0  Uilocalnotification фоновое событие огня для паузы музыки в iOS  ( Uilocalnotification background event fire to pause music in ios ) 
Мне нужно приостановить играть музыку, когда острельный огонь на Uilocalnotification. Кто-то предложит мне сделать со следующими кодами. Вы можете увидеть...

288  Навигационная панель навигации iPhone Цвет текста  ( Iphone navigation bar title text color ) 
Кажется, что цвет навигации iOS навигация навигация по умолчанию белый. Есть ли способ изменить его на другой цвет? Я в курсе navigationItem.titleView под...

0  Фоновый режим (Fetch) в iOS 8  ( Background mode fetch in ios 8 ) 
Я работаю над приложением iOS, которое использует фоновый режим для публикации обновления на сервере. Приложение Wack, проверяет состояние батареи, выключает ...

1  Как извлечь время истечения срока действия сертификатов IOS программно  ( How to fetch expiry date of ios certificates programmatically ) 
Я хочу получить срок годности сертификата, с которой подписан мой IPA. Мне нужен эта дата истечения срока действия, которая будет отображаться в приложении. Я...

1  Есть ли способ редактировать мой текущий игровой центр лидеров после моего приложения iOS?  ( Is there a way to edit my current game center leaderboard once my ios app is liv ) 
Итак, я видел, что я сделал ошибку, когда я настроил мою лидеров в моей игре. Я установил его как «низкий до высокого» вместо «высокого к низкому», и это выгл...

1  Как бы я выровнял изображение в нижнем правом направлении вида, используя классы размера в XCode?  ( How would i align an image to the bottom right of the view using size classes in ) 
У меня есть изображение, которое я хочу выровнять с правым нижним углом вида, а затем я хочу, чтобы остальное изображение масштабируется, чтобы заполнить дост...

0  Как использовать игрока YouTube IOS Perger с помощью use_frameworks! с какоаподами [закрыты]  ( How to use youtube ios player helper with use frameworks with cocoapods ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыто. Этот вопрос не воспроизводится или был вызван опечаткам...

0  Не может запустить TCP-сервер на iOS, сотовой  ( Cannot run tcp server on ios cellular ) 
Я пытаюсь запустить TCP-сервер на iOS из сотовой связи. В целях задачи этого вопроса я написал эту очень упрощенную версию сервера и клиента в C, используя So...

0  Не удалось отправить сообщение с помощью RTCDatachannel на iOS  ( Failed to send message using rtcdatachannel on ios ) 
Мне удалось разделить видео и аудио между A и B, и я нахожу RTCDatachannelState изменился на KRTCDatachannelStateOpen. <код> - (void)channelDidChangeState:(...

Связанный проблема

2  Как установить выбранную первую ячейку по умолчанию в Saslidemenu? 
0  Как трепетать файлы записи в iOS iPhone "Найти на моем телефоне" Папка 
1  Попытка запуска двух процессов одновременно в GCD - iOS 
376  Как я могу преобразовать Swift Array в строку? 
0  PDF не загружается из папки документов на приложении Relauch iOS 
0  Лучшие практики для запроса / ответа на сетевой вызов в приложении iPhone Программирование [Закрыто] 
0  Uilocalnotification фоновое событие огня для паузы музыки в iOS 
288  Навигационная панель навигации iPhone Цвет текста 
0  Фоновый режим (Fetch) в iOS 8 
1  Как извлечь время истечения срока действия сертификатов IOS программно 
1  Есть ли способ редактировать мой текущий игровой центр лидеров после моего приложения iOS? 
1  Как бы я выровнял изображение в нижнем правом направлении вида, используя классы размера в XCode? 
0  Как использовать игрока YouTube IOS Perger с помощью use_frameworks! с какоаподами [закрыты] 
0  Не может запустить TCP-сервер на iOS, сотовой 
0  Не удалось отправить сообщение с помощью RTCDatachannel на iOS