2017-09-22 7 views
-3

Gerade erst begonnen, Xcode 9 und iOS 11 heute zu verwenden, fand ich, dass Grenzlinie etwa 3 px über dem unteren Rand der Navigationsleiste erstellt wurde. Ich habe nie dasselbe in iOS 10 gesehen. Irgendeine Idee, wie man es entfernt? Um es klar, es ist nicht die Heimat iPhone X-Taste in der Abbildung unten, aber die Linie in der NavigationsleisteiOS 11 Navigationsleiste unterste Zeile

iPhone 7 Plus iOS 11 screenshot

+0

die man gesagt, du –

+0

denke ich Leute verwirrt mit dem, was ich mit ‚Grenzlinie etwa 3 Pixel über dem Boden des Navigationsleiste erstellt‘ bedeuten, ist es nicht die iPhone X-Home-Taste, über die ich spreche. Aber die Linie eine Navigationsleiste !! Ich habe sogar einen negativen Punkt dafür, weil jemand denkt, ich hätte so eine dumme Frage gestellt. –

+0

Ich denke, diese Grenze hat nichts mit Navigationsleiste in iOS 11 zu tun. Ich migrierte auch mein altes Projekt zu Xcode 9, aber ich bekomme keine solche Grenze. Dieser Rahmen kann also auf etwas anderes oder auf die Benutzeroberfläche Ihres Bildschirms zurückzuführen sein. Werfen Sie einen Blick auf diese Richtlinien: https://developer.apple.com/ios/human-interface-guidelines/overview/iphone-x/ Hoffe es hilft Ihnen :) –

Antwort

-3

Es stellt Home-Taste Anzeige auf dem iPhone X.

1

ich die Antwort gefunden : Es gibt eine untere Schattenlinie, die von der Navigationsleiste erzeugt wird, auf die nicht direkt zugegriffen werden kann, und ich muss Code schreiben, um das Bild für diesen Schatten zu ersetzen. Für alle, in das gleiche Problem laufen, dann ist dies der Code:

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"11.0")) { 
    // Remove navigation bar bottom shadow line in iOS 11 
    [self.navigationBar setBackgroundImage:[self generateSinglePixelImageWithColor:[FillrThemeManager sharedInstance].theme.fillViewNavigationBarTintColor] forBarMetrics:UIBarMetricsDefault]; 
    self.navigationBar.shadowImage = [self generateSinglePixelImageWithColor:[UIColor clearColor]]; 
} 

- (UIImage *)generateSinglePixelImageWithColor:(UIColor *)color { 
    CGSize imageSize = CGSizeMake(1.0f, 1.0f); 
    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0f); 

    CGContextRef theContext = UIGraphicsGetCurrentContext(); 
    CGContextSetFillColorWithColor(theContext, color.CGColor); 
    CGContextFillRect(theContext, CGRectMake(0.0f, 0.0f, imageSize.width, imageSize.height)); 

    CGImageRef theCGImage = CGBitmapContextCreateImage(theContext); 
    UIImage *theImage; 
    if ([[UIImage class] respondsToSelector:@selector(imageWithCGImage:scale:orientation:)]) { 
     theImage = [UIImage imageWithCGImage:theCGImage scale:[UIScreen mainScreen].scale orientation:UIImageOrientationUp]; 
    } else { 
     theImage = [UIImage imageWithCGImage:theCGImage]; 
    } 
    CGImageRelease(theCGImage); 

    return theImage; 
} 
Verwandte Themen