iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   In hoeverre zijn de volgende componenten te customizen? (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/45800-hoeverre-zijn-de-volgende-componenten-customizen.html)

markvwijnen 13-10-09 23:37

In hoeverre zijn de volgende componenten te customizen?
 
http://img210.imageshack.us/img210/5...controller.png

Mijn applicatie heeft voornamelijk een zwarte thema zoals je kunt zien in de afbeelding. Alleen zou ik die consistentie graag terug willen zien in de UISearchDisplayController componenten. Aller eerst in de UISegmentedController (1) ten tweede in de tableview van de resultaten (2) en uiteindelijk het liefst ook in het keyboard (3) al is het maar dat je een tintColor in kon stellen.

(1) Heb ik proberen te hacken door de subviews uit te lezen en de UISegmentedController eruit te pikken en die aan te passen. Dat werkt tot op zekere hoogte. Alleen mijn knoppen zijn nu huge (http://img527.imageshack.us/img527/9775/searchdisplaycontrollerz.png). Als iemand daar een oplossing voor weet is dat alvast opgelost.

(2) Je kan natuurlijk de table view van de resultaten opvragen en zodoende het uiterlijk veranderen. Het probleem is dat als je op de Cancel knop drukt je een witte flash ziet. Dit is niet mooi. Ik heb het terug gebracht dat als je de Tableview hide je dit niet te zien krijgt, maarja dan zie je dus ook je hele tableview niet meer. Als die witte flash is opgelost dan is dat ook weer netjes.

(3) Ik weet dat er heel weinig is dat je aan het keyboard kan veranderen dus ik ga ervanuit dat een zwarte tintColor dus ook niet mogelijk zal zijn. Graag een bevestiging hiervan.

JWVD 14-10-09 06:32

Je kan de stel van het keyboard wel op 'alert' zetten, dan is de achtergrond zwarttransparant, maar de knoppen nogsteeds grijs.

markvwijnen 14-10-09 11:15

Blijkbaar niet als het onderdeel is van de UISearchBar deze ondersteunt alleen KeyboardType en geen KeyboardAppearance. Wat nep allemaal.

Nog idee-en over hoe ik de overige puntjes kan oplossen?

Whacko 14-10-09 13:15

om je UISearchTableView aan te passen zou ik naar dit voorbeeld kijken:

TableSearch

Je moet dus de search delegates implementeren, en dan gebruikt ie dezelfde methodes als je gewone tableview om je cellen te maken.

markvwijnen 14-10-09 14:01

Heej Whacko bedankt voor je antwoord.

Ik heb tablesearch idd ook gevonden en bekeken. Veel van geleerd. Ik gebruik dezelfde delegate als de originele tableview en dat werkt ook alleen zegt het niks over de TableView zelf. Zoals de achtergrond kleur. Deze is gelukkig aan te passen met de UIResultTableView alleen is er 'iets' dat er voor zorgt dat na het drukken van de cancel knop het scherm fade van wit naar het origineel.

Zou je iets voor me willen doen?


1. Maak een UITableViewController aan.
2. In de header plaats:
Code:

@interface SampleViewController : UITableViewController <UISearchDisplayDelegate, UISearchBarDelegate>  {
    UISearchBar *tableSearchBar;
    UISearchDisplayController *tableSearchDisplayController;
    NSArray *listContent;
}

3. In de implementatie:
Code:

- (void)loadView {
    [super loadView];
   
    listContent = [[NSArray arrayWithObjects:@"Appel", @"Banaan", @"Citroen", nil] retain];
   
    self.tableView.backgroundColor = [UIColor blackColor];
    self.tableView.separatorColor  = [UIColor darkGrayColor];

    tableSearchBar          = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
    tableSearchBar.delegate  = self;
    tableSearchBar.tintColor = [UIColor blackColor];
    [tableSearchBar sizeToFit];
   
    self.tableView.tableHeaderView = tableSearchBar;
   
    tableSearchDisplayController                        = [[UISearchDisplayController alloc] initWithSearchBar:tableSearchBar contentsController:self];
    tableSearchDisplayController.delegate                = self;
    tableSearchDisplayController.searchResultsDelegate  = self.tableView.delegate;
    tableSearchDisplayController.searchResultsDataSource = self.tableView.dataSource;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [listContent count];
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   
    static NSString *CellIdentifier = @"Cell";
   
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
   
    cell.textLabel.textColor = [UIColor grayColor];
    cell.textLabel.text      = [listContent objectAtIndex:indexPath.row];
   
    return cell;
}

Vul een letter in en je ziet direct dat de zwarte tableview in de resultaten wit is geworden.

Dit is te fixen door:
Code:

- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView {
    tableView.backgroundColor = self.tableView.backgroundColor;
    tableView.separatorColor  = self.tableView.separatorColor;
}

Alleen als je nu dus op Cancel drukt (Nadat je het resultaten table view te zien krijgt!) zie je een witte flash.

Whacko 14-10-09 14:43

Ik zal er vanavond eens naar kijken. Heb nu geen mac voor mijn neus.

markvwijnen 14-10-09 15:07

Ben benieuwd, alvast bedankt voor je hulp.

markvwijnen 15-10-09 01:47

Hoe kan ik deze thread verwijderen eigenlijk?


Alle tijden zijn GMT +2. Het is nu 00:21.