Frage

My Client kann nicht iPhone Standardschriften lesen, ist die Größe zu klein. Ich habe eine Anwendung mit einer Navigationsleiste und ich brauche, um alles darin zu machen größer, zum Beispiel der Größe der Schriftart.

IB scheint nicht diese ... jede Hilfe zu ermöglichen?

Vielen Dank!

War es hilfreich?

Lösung

Update: Heute (2012) gibt es eine viel größere Tendenz zum kundenspezifischen UIs, so würde ich sagen, die Antwort unten viel zu hart. Es gibt noch keine unterstützte Möglichkeit Höhe der Anpassung, obwohl, aber man kann sicherlich von UINavigationBar ableiten und einige Sizing Methoden außer Kraft setzen. Dies wird wahrscheinlich nicht erhalten Sie abgelehnt (obwohl es immer noch eine Grauzone, nur etwas Apple hat heute wohl übersehen wird).

Wenn Sie die Größe, die Sie wollen, können Sie iOS 5 Anpassung APIs verwenden, um die benutzerdefinierte Hintergrundbild eingefügt (siehe WWDC 2011 Session 114 - Anpassen der Darstellung von UIKit Controls).

Original Antwort von 2009:

  

Dies ist im Allgemeinen nicht möglich.

     

Was mehr ist, ich die Navigationsleiste größer glauben machen, ist eine Verletzung   kann von Apple Human Interface Guidelines, und Ihre Anwendung sein   weil es aus dem App Store abgelehnt. Bitte stellen Sie sicher, dass Ihre   Kunde versteht dieses Risiko, bevor Sie fortfahren.

     

(Aufzeigen Ablehnung Risiken ist in der Regel eine gute Möglichkeit, davon zu überzeugen,   Kunden gegen Unsinn Entscheidungen.)

Andere Tipps

Viele der Antworten hier sind falsch oder unvollständig, so wollte ich meine Antwort hier in der Hoffnung, hinzuzufügen, dass es einige aufklären könnte.

Zunächst einmal, es ist nichts falsch mit der Höhe der Navigationsleiste ändern. Leute kommentieren sagen es ist nicht erlaubt, oder geht gegen die Richtlinien einfach sind diese Leitlinien Mißverständnis.

Die Möglichkeit, die Standard-Navigationsleiste anzupassen oder zu ändern, die in einem UINavigationController verwendet wird seit iOS 5 Teil des SDK gewesen.

- (instancetype)initWithNavigationBarClass:(Class)navigationBarClass toolbarClass:(Class)toolbarClass NS_AVAILABLE_IOS(5_0);

Der einfachste Weg, um die Höhe der Statusleiste zu ändern, ist diese Methode zu verwenden, wenn Ihr Navigationscontroller initialisiert, vorbei in Ihrer benutzerdefinierten UINavigationBar Unterklasse.

TestViewController *t = [[TestViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithNavigationBarClass:[MyNavigationBar class] toolbarClass:[UIToolbar class]];
[nav setViewControllers:@[t]];  
[self.window setRootViewController:nav];
[self.window makeKeyAndVisible];

Wenn ein Beispiel für eine solche individuelle UINavigationBar Klasse aussehen könnte:

@interface MyNavigationBar : UINavigationBar
@end

@implementation MyNavigationBar

- (CGSize)sizeThatFits:(CGSize)size
{
        CGSize s = [super sizeThatFits:size];
        s.height = 90; // Or some other height
        return s;
}

@end

Wenn Sie sich entschieden, nur die Schriftart ändern Größe in der Navigationsleiste können Sie dies tun (in der Regel in Ihrem UIViewController der viewDidLoad-Methode):

UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];

[titleLabel setBackgroundColor:[UIColor clearColor]];
// here's where you can customize the font size
[titleLabel setFont:[UIFont boldSystemFontOfSize:18.0]];
[titleLabel setTextColor:[UIColor whiteColor]];
[titleLabel setText:self.title];
[titleLabel sizeToFit];
[titleLabel setCenter:[self.navigationItem.titleView center]];

[self.navigationItem setTitleView:titleLabel];

[titleLabel release];

Mit dem Subklassen Sie können die erreichen und immer noch iOS unterstützen 3 + :

Komplettes Beispiel:

#import <UIKit/UIKit.h>

@interface ASNavigationBar : UINavigationBar
@property (nonatomic , retain) UIImage *backgroundImage;
@end

Und Umsetzung:

#import "ASNavigationBar.h"

@implementation ASNavigationBar
@synthesize backgroundImage = _backgroundImage;

-(void) setBackgroundImage:(UIImage *)backgroundImage
{
    if (_backgroundImage != backgroundImage)
    {
        [_backgroundImage release];
        _backgroundImage = [backgroundImage retain];
        [self setNeedsDisplay];
    }
}

-(void) drawRect:(CGRect)rect
{
    // This is how the custom BG image is actually drawn
    [self.backgroundImage drawInRect:rect];
}

- (CGSize)sizeThatFits:(CGSize)size 
{
    // This is how you set the custom size of your UINavigationBar
    CGRect frame = [UIScreen mainScreen].applicationFrame;
    CGSize newSize = CGSizeMake(frame.size.width , self.backgroundImage.size.height);
    return newSize;
}
@end

Wichtige Hinweise:

  1. Wenn das Hintergrundbild mit transparenten Bereichen ist, müssen Sie seine barstyle Eigenschaft auf „durchscheinend“ oder die transparenten Bereiche schwarz wird eingestellt.
  2. Wenn Sie eine Navigationsleiste größer als 44 Punkte haben, müssen Sie berücksichtigen, dass die Position des BarButtonItems nicht richtig sein könnte. Sie alle werden an der Unterseite der Stange verankert werden. Sie können das Problem beheben, indem layoutSubviews zwingenden und dessen origin.y Wert ändern.

Sie sollten nicht die Höhe der Navigationsleiste ändern. Von Apple Programing Guide auf View-Controller:

Anpassen der Navigationsleiste Aussehen

In einer Navigationsoberfläche, ein Navigationscontroller besitzt sein UINavigationBar Objekt und ist verantwortlich für das Management von IT. Es ist nicht zulässig, die Navigationsleiste Objekt zu ändern oder seine Grenzen, Rahmen oder Alpha-Werte direkt zu modifizieren. Es gibt jedoch einige Eigenschaften, die es erlaubt ist zu ändern, einschließlich der folgenden:

● barstyle Eigenschaft

● durchscheinend Eigenschaft

● tintColor Eigenschaft

(von Apple genommen: https: / /developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/NavigationControllers.html )

UPDATE - IOS 7 --- immer noch nur die verfügbaren Eigenschaften verändert werden können, aber unten ist ein großes Tutorial, wie Flexibilität in der Navigationsleiste erreichen http://www.appcoda.com/customize-navigation-status-bar-ios-7/

Um zu Skela Antwort hinzufügen:

Wenn Sie Ihren Navigationscontroller in dem Storyboard initiieren können Sie die Klasse Ihres UINavigationBar im Storyboard zu Ihrer benutzerdefinierten navbar ändern.

und dann implementieren, um die Änderung der Höhe in der Klasse

@interface MyNavigationBar : UINavigationBar
@end

@implementation SwitchAssessmentNavigationBar

- (CGSize)sizeThatFits:(CGSize)size
{
        CGSize s = [super sizeThatFits:size];
        s.height = 200; // Or some other height
        return s;
}

@end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top