Вопрос по iphone, uisearchdisplaycontroller, customization – Настройте UISearchDisplayController

5

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

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

1. UISearchBar Scope Buttons (UISegmentedController)

2. UIResultsTableView

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

Что вы используете для его создания: перо или код? JoePasq
Я использую код. Я был в состоянии настроить все, так что спасибо всем за помощь, однако я не былне могу удалить вопрос. Mark

Ваш Ответ

3   ответа
3

альтернативный текст 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

несмотря на то, что я пробовал каждый segmentedControlStyle. Вот'Вот код, который мне нужно было использовать, чтобы хотя бы получить правильный оттенок цвета на 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

- (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]; }

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

Мне пришлось удалить изображение из вашего поста, потому что ImageShack удалил его и заменил его рекламой. Увидетьmeta.stackexchange.com/q/263771/215468 для дополнительной информации. Если возможно, было бы здорово, чтобы вы их заново загрузили. Спасибо! Undo

Похожие вопросы