2010-02-07 8 views
7

Wiele wyszukiwań tabel widzę w rzeczywistości przyciemnić (zmienić alfa?) Rzeczywistego tableView, gdy pasek wyszukiwania zostanie skupiony. Próbuję to wdrożyć.UITableSłuży do "przyciemnienia" rzeczywistego stołu, gdy UISearchbar się skupi?

Kiedy przeciążać

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 

Staram się zrobić coś takiego

self.tableView.alpha = .5f 

Ale to się zmienia alfa rzeczywistego searchBar (jeśli mam searchBar na własną rękę) lub zmiana alfa z całej tabeli (w tym searchBar), jeśli mam searchBar poniżej tableView in IB.

Co robię źle tutaj. Jak mogę po prostu przyciemnić stół, a nie wszystko.

Domyślam się, że naprawdę nie rozumiem, w jaki sposób wszystkie te rzeczy dostaje warstwowe na ekranie.

EDYCJA: Aplikacja kontaktów jest dobrym przykładem tego, co próbuję zrobić.

Odpowiedz

10

Większość takich aplikacji po prostu rzuca UIView na czarnym tle na blacie stołu i znika w nim (do alfa w .5 lub czymkolwiek innym), gdy pasek wyszukiwania zyskuje ostrość.

+0

Czy możesz podać kod szybkiego przykładu? –

+4

[UIView beginAnimations: nil context: NULL]; [UIView setAnimationDuration: 0.5f]; UIView * blackView = [[przydziela UIView] initWithFrame: CGRectMake (coś)]; [myTableView addSubview: blackView]; [UIView commitAnimations]; –

2

Jeśli używasz UISearchDisplayController, otrzymujesz to zachowanie za darmo.

0

Od wersji iOS 8 (i co najmniej do wersji iOS 9.2) można użyć numeru UISearchController. Niestety obecnie program budujący interfejs obsługuje tylko teraz przestarzałą wersję UISearchDisplayController. W ten sposób można go programowo dodać do kontrolera widoku tabeli, w tym efekt przyciemnienia:

let searchController = UISearchController(searchResultsController: nil) 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Use the current view controller to update the search results: 
    self.searchController.searchResultsUpdater = self 
    self.searchController.dimsBackgroundDuringPresentation = true 
    self.tableView.tableHeaderView = searchController.searchBar 
} 
Powiązane problemy