//

Drop shadow UITableView zoals clock.app

Drop shadow UITableView zoals clock.app discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) het plaatje heeft dus het effect ?...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Berichten van vandaag

Reageren

 

Discussietools Weergave
  #21  
Oud 22-10-08, 10:19
wbroek wbroek is offline
• iOS 3.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Feb 2008
Locatie: Nederland
Berichten: 63
Standaard

het plaatje heeft dus het effect ?
Gesponsorde links
Advertentie
Advertentie

  #22  
Oud 22-10-08, 10:32
webmaniac webmaniac is offline
• iOS 2.0.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Aug 2008
Berichten: 28
Standaard

Nee, het schaduw effect is te verkrijgen zoals in eerdere posts al aangegeven is. Een transparante png in de header en footer, en dan de tableview zo plaatsen dat de header buiten de parent view valt, zodat de schaduw (de header dus) alleen bij scrollen zichtbaar wordt.

Ik doelde in mijn bovenstande post meer op de custom UITableViewCell en het property backgroundView welk gebruikt kan worden om een achtergrond door te laten lopen onder de accessoryView
  #23  
Oud 22-10-08, 14:04
nvrooij nvrooij is offline
• iOS 2.2.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 15
Stuur een bericht via MSN naar nvrooij
Standaard

Ik heb een UIColor gedefinieerd met colorFromPatternImage. Hierdoor wordt de gehele cell gevuld met de achtergrond gradient.

Verder ben ik bezig met een korte tutorial, maar ben gister in gesprek met Pixxaa tegen issue gelopen waar ik nog geen antwoord op heb kunnen vinden.

De tableView wordt in mijn geval namelijk verplaatst zodat de header buiten beeld valt. Hierdoor wordt deze pas zichtbaar wanneer je met de table cells gaat schuiven. Deze verschuiving zat in de ViewWillAppear method. Echter, wanneer je gebruik maakt van een ViewController wordt deze tableView automatisch weer naar beneden verplaats wanneer je bijvoorbeeld terugkomt van een andere view. Wanneer je een ModalView gebruikt zoals bij de Clock.App is er overigens geen probleem.

Als iemand hier een goede suggestie voor weet?
  #24  
Oud 22-10-08, 14:30
webmaniac webmaniac is offline
• iOS 2.0.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Aug 2008
Berichten: 28
Standaard

Je moet even goed kijken welke code er voor zorgt dat de view zichtbaar wordt. Ik ben het probleem ook tegen gekomen. Soms wordt viewWillAppear niet aangeroepen. Meestal in het geval dat door Apple (of jouw) geschreven code de view dmv. van bijv. addSubview: of insertSubview:above: "handmatig" toevoegd aan de view boom structuur.

Zet dus zelf de juiste code om addSubview heen:
Code:
[myViewController viewWillAppear:NO];
[someSuperview addSubview:myViewController.view];
[myViewController viewDidAppear:NO];
Het werkt wel als je bijvoorbeeld een navigation controller of tabcontroller gebruikt, omdat de API's van Apple deze code dan voor je aanroepen.

Laatst gewijzigd door webmaniac; 22-10-08 om 14:31. Reden: code tags
  #25  
Oud 22-10-08, 19:26
naquah naquah is offline
• iOS 2.2
• Besturingssysteem: MacOS X
 
Geregistreerd: Jul 2008
Berichten: 33
Standaard

Je kunt proberen om een UIViewController te gebruiken en zelf je UITableView te maken, in plaats van een UITableViewController te gebruiken. Als je namelijk zelf je table view maakt, zal hij nooit automagisch gaan schuiven.
  #26  
Oud 22-10-08, 19:28
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

mijn code die daar voor zorgt:

[self.navigationController pushViewController:controller animated:YES];

Citaat:
Oorspronkelijk geplaatst door naquah Bekijk bericht
Je kunt proberen om een UIViewController te gebruiken en zelf je UITableView te maken, in plaats van een UITableViewController te gebruiken. Als je namelijk zelf je table view maakt, zal hij nooit automagisch gaan schuiven.
Ik gebruik al een UIViewController:
@interface RootViewController : UIViewController {

Laatst gewijzigd door iScorpio; 22-10-08 om 19:36. Reden: samenvoegen
  #27  
Oud 22-10-08, 21:04
nvrooij nvrooij is offline
• iOS 2.2.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 15
Stuur een bericht via MSN naar nvrooij
Standaard

webmagic,

Het probleem is dat de navigation controller zelf een backbutton creëert. Dus het aanroepen van deze functies is dan niet mogelijk. Je kunt dan zelf natuurlijk zorgen dat deze button wordt gecreeert en een selector creeren voor dit event.

Maar ik vraag me af of dit niet makkelijker kan?
  #28  
Oud 22-10-08, 23:31
naquah naquah is offline
• iOS 2.2
• Besturingssysteem: MacOS X
 
Geregistreerd: Jul 2008
Berichten: 33
Standaard

Citaat:
Oorspronkelijk geplaatst door Pixxa Bekijk bericht
Ik gebruik al een UIViewController:
@interface RootViewController : UIViewController {
Sorry... het zit hem in het feit dat ik [super loadView] aanroep (die maakt een simpele UIView) en dan de table view als subview toevoeg aan self.view. De controller gaat dan de controller view wel resizen, maar zijn subviews niet.
  #29  
Oud 23-10-08, 07:52
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Ik probeer het nu anders op te lossen. In plaats van de view die ik laad er in te schuiven doormiddel van 'erfen' wil ik hem erop plakken. Dus geen pushViewController maar presentModelViewController. Dit lijkt de oplossing omdat mn tables dan niet in en uit schuiven alleen heb ik wat problemen met de backBarButton omdat die niet meer geerfd wordt van de parent. Geen idee hoe ik dat moet oplossen
  #30  
Oud 23-10-08, 11:23
nvrooij nvrooij is offline
• iOS 2.2.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 15
Stuur een bericht via MSN naar nvrooij
Standaard

Ik heb het advies van Naquah(bedankt) gevolgt en inderdaad als je een view toevoegd en daar een tableview overheen legt. Dan kun je in de Interface Builder in dit geval je tableview naar boven uitrekken. Wanneer je nu met de een item edit en weer terug komt blijft de tableview zijn locatie behouden.

Je kunt de tableview in de XIB eenvoudig vervangen door een View de tableview te slepen in het document venster. Sleep daar vervolgens weer een tableview naartoe. (Kijk goed dat je de view niet vervangt door een tableview, maar dat je de horizontable lijn onder de view vershijnt). Nu kun je de TableView uitrekken. Misschien moet je nog even je View Mode aanpassen want deze staat standaard op scale to fit.
  #31  
Oud 23-10-08, 11:26
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Citaat:
Oorspronkelijk geplaatst door nvrooij Bekijk bericht
Ik heb het advies van Naquah(bedankt) gevolgt en inderdaad als je een view toevoegd en daar een tableview overheen legt. Dan kun je in de Interface Builder in dit geval je tableview naar boven uitrekken. Wanneer je nu met de een item edit en weer terug komt blijft de tableview zijn locatie behouden.

Je kunt de tableview in de XIB eenvoudig vervangen door een View de tableview te slepen in het document venster. Sleep daar vervolgens weer een tableview naartoe. (Kijk goed dat je de view niet vervangt door een tableview, maar dat je de horizontable lijn onder de view vershijnt). Nu kun je de TableView uitrekken. Misschien moet je nog even je View Mode aanpassen want deze staat standaard op scale to fit.

kan je een screenshot maken?
  #32  
Oud 23-10-08, 11:49
nvrooij nvrooij is offline
• iOS 2.2.1
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 15
Stuur een bericht via MSN naar nvrooij
Standaard




Je moet dus in de inspector weer de koppelingen opbouwen(zie afbeelding 2).
  #33  
Oud 23-10-08, 15:08
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Duidelijk, zal vanavond nog even uit proberen. Maar dat betekend dat ik geen presentModalViewController methode hoef toe te passen?
  #34  
Oud 23-10-08, 15:24
naquah naquah is offline
• iOS 2.2
• Besturingssysteem: MacOS X
 
Geregistreerd: Jul 2008
Berichten: 33
Standaard

Citaat:
Oorspronkelijk geplaatst door Pixxa Bekijk bericht
Duidelijk, zal vanavond nog even uit proberen. Maar dat betekend dat ik geen presentModalViewController methode hoef toe te passen?
Dat klopt.
  #35  
Oud 25-10-08, 14:40
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Nou, lijkt te werken! Nu alleen nog even de achtergrondview van de nieuwe View zien te wijzigen..
  #36  
Oud 25-10-08, 15:28
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

In de viewDidLoad { methode heb ik nu dit staan:

CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
self.mainView = [[[UIView alloc] initWithFrame:screenRect] autorelease];
mainView.backgroundColor = [UIColor groupTableViewBackgroundColor];
self.view = mainView;
//[self.view bringSubviewToFront:tableView];

Dit zorgt er perfect voor dat mn UIView groupTable style looks heeft maar nu mis ik mn tableView zelf. Het naar voren (ToFront) brengen van de tableView werkt niet en het verzenden (sendSubviewToBack) van mainView werkt ook niet.

Wat doe ik niet goed?

OPGELOST.

ipv: self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];

Moest ik gewoon de juiste view het kleurtje geven..

self.tableView.backgroundColor = [UIColor groupTableViewBackgroundColor];

overige code die ik gaf is dus niet meer van toepassing

Laatst gewijzigd door Pixxa; 25-10-08 om 17:38.
  #37  
Oud 26-10-08, 18:43
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

Even toevoegen, kom net tot de ontdekking dat mn tableHeaderView en tableFooterView niet worden verwijderd als ik mn table verwijder. Hoe kan dat?
  #38  
Oud 26-10-08, 19:14
naquah naquah is offline
• iOS 2.2
• Besturingssysteem: MacOS X
 
Geregistreerd: Jul 2008
Berichten: 33
Standaard

De table view retained de header en footer views en released ze als hij ze niet meer nodig heeft. Het toewijzen van de header en footer views is dus 'retainCount-neutraal'.

Je moet ze zelf dus ook nog een keer releasen. Meestal doe ik dit door ze te autoreleasen op het moment dat ik ze aan de table view geef.

Laatst gewijzigd door naquah; 26-10-08 om 19:14. Reden: grammatica
  #39  
Oud 26-10-08, 19:21
Pixxa Pixxa is offline
• iOS 2.1
• Besturingssysteem: MacOS X
 
Geregistreerd: Sep 2007
Berichten: 104
Standaard

? Maar ik release ze toch al.

//Dropshadow cell setup (schaduw onder/boven tables)
UIImage *footerImage = [UIImage imageNamed:@"TableFooterShadow.png"];
UIImageView *fView = [[UIImageView alloc] initWithImage:footerImage];

UIImage *headerImage = [UIImage imageNamed:@"TableHeaderShadow.png"];
UIImageView *hView = [[UIImageView alloc] initWithImage:headerImage];


fView.alpha = 0.3;
hView.alpha = 0.3;

[tableView setSectionFooterHeight:TABLE_SHADOW_HEIGHT];
[tableView setSectionHeaderHeight:TABLE_SHADOW_HEIGHT];
[tableView setTableFooterView:fView];
[tableView setTableHeaderView:hView];
//self.tableView.tableFooterView = fView;
//self.tableView.tableHeaderView = hView;
[fView release];
[hView release];
  #40  
Oud 26-10-08, 19:32
naquah naquah is offline
• iOS 2.2
• Besturingssysteem: MacOS X
 
Geregistreerd: Jul 2008
Berichten: 33
Standaard

He luister, ik weet niet wat jouw code is!

Maar volgens mij ziet je code er goed uit... wordt je table view wel gereleased dan? Of ik snap niet wat je bedoelt met "verwijderen" in je vraag.
Reageren



Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
Is er een app zoals LockCalendar? t0n iPhone Apps 6 14-07-10 12:11

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 07:04.