Is er een manier om de breedte en inzet van een staafknopitem op een navigatie-item te wijzigen?

Ik wilde een afbeelding met een netvliesresolutie (40x40p) gebruiken op een item in de balkknop op het item van mijn MVC. Toen ik de afbeelding instelde, zag het er zoals verwacht uit in horizontale richting:

Stretched navigation item button image

Opmerking Ik heb ook een werkbalkknopafbeelding met een retinaresolutie (60px60p), zoals vereist door de Apple-specificatie . Het werd op soortgelijke wijze uitgerekt wanneer de grootteparameters standaardwaarden hadden, dat wil zeggen breedte = 0, inzetstukken; t = 0, b = 0, l = 0, r = 0:

enter image description here

In tegenstelling tot het navigatoritem, kon ik in de werkbalkcase deze waarden met succes van IB wijzigen. Wanneer ik breedte = 30 instel, en inzet t = 5, b = 5, l = 5, r = 5 is de werkbalkknop perfect weergegeven:

Perfectly scaled hi-res toolbar button image

Toen ik de Inspectie Grootte gebruikte en probeerde om de breedte en tussenvoegwaarden van het item van de balkknop in het navigatie-item in te stellen, leek het geen effect te hebben. Het beeld van de versnelling zag er nog steeds gestrekt uit.

Ik heb ook geprobeerd het item op de balkknop op het navigatie-item per code te maken en daar de breedte en inzet in te stellen, het werkte ook niet:

        UIImage *image = [UIImage imageNamed:@"[email protected]"];
    //--------------------------------------------------------------------
   //This line had no effect for a bar button item on a navigation item:
    image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5.0,5.0,5.0,5.0)];
    //--------------------------------------------------------------------
    UIBarButtonItem *button = [[UIBarButtonItem alloc] 
                               initWithImage:image 
                               style:UIBarButtonItemStylePlain
                               target:self
                               action:@selector(handleBack:)];
    //--------------------------------------------------------------------
   //This line had no effect for a bar button item on a navigation item:
    button.width = 30;
    //--------------------------------------------------------------------

Om het even welke ideeën of ik iets verkeerd doe, of dit als een insect kijkt. Mijn implementatiedoel is iOS 5.0.

0

1 antwoord

Ik begrijp nu de reden achter dit probleem. Ik wist niet dat ik zowel normale als hi-resolutie (@ 2x) afbeeldingen in de app-bundel moest inpakken. Ik was naïef van plan om hi-res afbeelding op te nemen en te verwachten dat het zou werken. Omdat ik alleen een storyboard voor de iPhone heb, heb ik mijn probleem opgelost met 20 en 40 pixelversies van elke afbeelding in de bundel.

Als gevolg hiervan is het niet nodig om rond te lopen met knoopbreedten of inzetbuizen. Dit probleem is nu opgelost.

0
toegevoegd