2017-09-22 3 views
-3

Xcode 9와 iOS 11을 사용하기 시작한 시점에서 네비게이션 바 아래쪽에 약 3 픽셀의 경계선이 생겼습니다. iOS 10에서 같은 것을 본 적이 없습니다. 어떻게 제거 할 수 있을지 생각해보십시오. 이 아래의 스크린 샷에서 아이폰 X 홈 버튼이 아니라 탐색 표시 줄의 선이iOS 11 탐색 바 밑줄

iPhone 7 Plus iOS 11 screenshot

+0

당신이 –

+0

이 나는 ​​'약 3 PX 네비게이션 바의 바닥 위에서 만든 경계선'가 무슨 뜻인지 혼동 사람들을 생각했다 하나 사람이 같은 문제로 실행 들어,이 코드입니다 내가 말하는 iPhone X 홈 버튼이 아닙니다. 그러나 1 개의 탐색 바를 선! 나는 누군가가 내가 어리석은 질문을했다고 생각하기 때문에 그것에 대해 하나의 부정적인 점을 가지고있다. –

+0

이 경계선은 iOS 11의 탐색 바를 다루는 데 아무런 문제가 없다고 생각합니다. 이전 프로젝트를 Xcode 9로 마이그레이션했지만 테두리가 표시되지 않습니다. 따라서이 경계선은 화면의 UI와 관련되거나 다른 것과 관련 될 수 있습니다. 다음 가이드 라인을 살펴보십시오. https://developer.apple.com/ios/human-interface-guidelines/overview/iphone-x/ 희망 사항 : –

답변

-3

그것은 내가 대답을 발견

1

아이폰 X에서 홈 버튼 표시를 나타냅니다 분명히 만들려면 : 거기에 직접 액세스 할 수없는 탐색 표시 줄에 의해 만들어진 아래쪽 그림자 선이 있고 그 그림자에 대한 이미지를 대체 코드를 작성해야합니다. 그것은이다

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; 
}