Настройте UISearchDisplayController - PullRequest
       7

Настройте UISearchDisplayController

5 голосов
/ 13 октября 2009

альтернативный текст http://img210.imageshack.us/img210/5992/searchdisplaycontroller.png

Настраиваются ли следующие объекты?

1. UISearchBar Scope Buttons (UISegmentedController)

2. UIResultsTableView

3. Клавиатура (по крайней мере, поэтому она черного цвета)

Ответы [ 3 ]

3 голосов
/ 13 октября 2009

альтернативный текст http://img527.imageshack.us/img527/9775/searchdisplaycontrollerz.png

Мне удалось изменить сегментированный элемент управления с помощью своего рода хак-кода:

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller {
for (UIView *subview in self.view.subviews) {
    for (UIView *subview2 in subview.subviews) {
        if ([subview2 isKindOfClass:[UISegmentedControl class]]) {
            UISegmentedControl *segmentedControl = (UISegmentedControl *)subview2;
            segmentedControl.tintColor = [UIColor blackColor];
            segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
        }           
    }
}}

Однако кнопки ОГРОМНЫЕ, как я могу это исправить, чтобы они были такими же красивыми, как оригинал?

1 голос
/ 24 апреля 2011

Мне также никогда не удавалось сделать кнопки меньше, несмотря на попытки каждого сегментированного ControlStyle. Вот код, который мне нужно было использовать, чтобы хотя бы получить правильный оттенок цвета на IOS4:

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller {
    static BOOL tintAlreadyChanged = NO;
    if (tintAlreadyChanged) return;

    NSLog(@"Searching subViews for UISegmentControl:");
    //fix segmented control
    for (UIView *subview in self.view.subviews) {
        //NSLog(@"\n\nsubView = %@",subview);
        for (UIView *subview2 in subview.subviews) {
            //NSLog(@"subView2 = %@",subview2);
            for (UIView *subview3 in subview2.subviews) {
                //NSLog(@"subView3 = %@",subview3);
                if ([subview3 isKindOfClass:[UISegmentedControl class]]) {
                    NSLog(@"Found UISegment SubView = %@",subview3);
                    UISegmentedControl *segmentedControl = (UISegmentedControl *)subview3;
                    segmentedControl.tintColor = [UIColor blackColor];
                    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBezeled;
                    tintAlreadyChanged = YES;
                }
            }                       
        }
    }
}
1 голос
/ 13 октября 2009

Мне удалось настроить просмотр таблицы, используя следующий код:

- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView {
tableView.backgroundColor = [UIColor colorWithRed:(19.0 / 255.0) green:(19.0 / 255.0) blue:(19.0 / 255.0) alpha:1.0];
tableView.separatorColor  = [UIColor blackColor]; }

Однако при нажатии кнопки отмены интерфейс мигает белым, прежде чем вернуться к исходному виду таблицы. Как это можно исправить?

...