2013-07-24 4 views
0

То, что я пытаюсь сделать: Я хочу переместить координаты x и y моей строки поиска на событие касания. Я поместил свой код в viewDidLoad, чтобы проверить его. Однако я получаю сообщение об ошибке.Недвижимость 'frame' не найден на объекте типа 'UISearchBar' error

Ошибка: Объект 'frame' не найден на объекте типа 'UISearchBar'.

Мой код:

NSNumber *newX = @0; 
NSNumber *newY = @0; 
[UIView animateWithDuration:0.3f animations:^{ 
    [UISearchBar setFrame:CGRectMake(newX, newY, UISearchBar.frame.size.width, 
             yourSearchBar.frame.size.height)]; 
} 
       completion:^(BOOL finished) {} 
]; 

В конце концов, я хотел бы, что анимация/движение будет выполняться при выборе строки поиска, а затем вернуться назад после Deselect.

+0

Заменить 'UISearchBar' с переменным типа' UISearchBar * '. – rmaddy

+1

Вы также передаете экземпляры NSNumber для функции 'CGRectMake()', которая принимает 'CGFloat'. Это должно быть 'CGFloat newX = 0;' и 'CGFloat newY = 0;'. –

+0

Когда я делаю переменную UISearchBar, мне нужно как-то назначить эту переменную в панель поиска? – sephiith

ответ

0

UISearchBar - класс. Он не имеет метода класса setFrame. У него действительно есть метод экземпляра, и это то, что вы должны использовать. Итак, вам нужен экземпляр UISearchBar, который у вас уже есть, или вам нужно его создать.

Если это делается при выборе строки поиска, ваш код будет в методе делегата searchBarTextDidBeginEditing:, и вы бы использовать предоставленный параметр:

[searchBar setFrame:CGRectMake(newX, newY, searchBar.frame.size.width, yourSearchBar.frame.size.height)]; 
+0

У вас все еще есть ссылка 'UISearchBar' в середине. – rmaddy

+0

Спасибо @rmaddy, не уверен, что у вас есть 'yourSearchBar', но я оставил это на данный момент ... – Wain

+0

Как создать метод экземпляра UISearchBar? – sephiith

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