2015-11-05 2 views
0

Я видел какой-то проект git hub и вопрос SO, что некоторые использовали панель поиска программно для своего проекта. Я тоже следовал этому проекту project. В результате они создали объект панели поиска и поместили его. Но, наконец, они добавили один метод «наблюдатель». Действительно, я не могу понять, что menthod.If я запускаю свое приложение без этого метода. Невозможно увидеть мою панель поиска.searchbar/did select-deselect ios

На самом деле существует какой-либо метод «наблюдатель». Я новичок в ios, поэтому имею только это сомнение.

Другой вопрос:

Для delect и де-выбрать вид коллекции ячейки. я сделал это с помощью кода ниже. Но когда я выбираю одну ячейку, цвет фона меняется, но когда я выбираю одну и ту же ячейку снова, она не показывает мой метод выбора по умолчанию по умолчанию. Если я выбираю другую ячейку, то только моя первая выбранная ячейка меняется на белый цвет согласно выбору метода сделал-де

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 
{ 

    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath]; 
    cell.backgroundColor = [UIColor cyanColor]; 

} 

//did-deselect 
-(void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath 
{ 

    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath]; 
    cell.backgroundColor = [UIColor whiteColor]; 

} 

Это способ вида ячейки коллекции выберите/сделала де выбор будет work.Thanks!

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

Я использую некоторый вход в выход из системы для моей Projets, которые имеют некоторую коллекцию view.I используется панель поиска, как добавил, что выше мерзавец хаб проекта я gave.When я нажать кнопку выхода из системы моего приложения аварии.

это мой выход из системы код:

- (IBAction)logout:(id)sender { 
    [self dismissViewControllerAnimated:YES completion:nil]; 



} 

когда я удалить addobserber метод из моего проекта его работе well.But я нужен, чтобы показать мой поиск bar.if я использую мой крах приложения, когда я нажимаю выход из системы

Но я did't использовать этот код:

-(void)dealloc{ 
    // remove Our KVO observer 
    [self removeObservers]; 
} 

ли это необходимо, чтобы вставить свой код, чтобы хорошо работать

ответ

0

Для вашего 1-й вопрос:

В проекте вы добавляете наблюдателя в collection view

- (void)addObservers{ 
    [self.collectionView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil]; 
} 

Так что, если есть какие-либо изменения в отношении collectionViewcontentOffset, он будет вызывать следующий метод и изменяет рамку поисковой строки:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(UICollectionView *)object change:(NSDictionary *)change context:(void *)context{ 
if ([keyPath isEqualToString:@"contentOffset"] && object == self.collectionView) { 
    self.searchBar.frame = //..... 
    } 
} 

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

Для вашего 2 вопроса:.

«Для delect и де-выбрать вид коллекции ячейку я сделал с ниже code.But, когда я выбрать один из клеток его цвет фона меняется, но когда я выбрать в той же ячейке, что и не показывает мой метод деда-выбора по умолчанию. "

Он не работает так.Когда вы снова выберете ячейку, метод didSelectItemAtIndexPath будет вызван и вы не увидите белый цвет для него.

Ячейка выбирается только если выбрана другая ячейка. Если вы хотите деактивировать ячейки вручную, вам необходимо позвонить deselectItemAtIndexPath. Опять же, если вы сделаете это на didSelectItemAtIndexPath, вы не найдете большой разницы, поскольку он сразу же отменяется сразу после выбора ячейки !!!!

+0

я использую 'addObservers' с входом logot.But, когда я нажимаю кнопку выхода из системы моего приложения получает аварию – mark

+0

' - (IBAction) ВЫХОД ИЗ СИСТЕМА: (ID) отправителя { [само dismissViewControllerAnimated: ДА завершение: ноль]; } – mark

+0

этот выше код, который я использую для выхода из системы. Если я удалю наблюдателей, его работа прекрасна. Но мне нужен этот метод. Теперь, как это сделать .. – mark

Смежные вопросы