게임을 개발 중이며 앱에서 사용자 지정 글꼴을 사용하고 싶습니다. 중요한 경우 SpriteKit을 사용하고 있습니다. 이 https://github.com/deni2s/IBCustomFonts를 사용해 보았지만 이 글꼴로 작동 할 수 없습니다. http://www.fontspace.com/freaky-fonts/emulogic .
다양한 시도를 해봤고 앱의 info.plist에 폰트를 등록했습니다 ... 무슨 일인지 아는 사람 있나요?
게임을 개발 중이며 앱에서 사용자 지정 글꼴을 사용하고 싶습니다. 중요한 경우 SpriteKit을 사용하고 있습니다. 이 https://github.com/deni2s/IBCustomFonts를 사용해 보았지만 이 글꼴로 작동 할 수 없습니다. http://www.fontspace.com/freaky-fonts/emulogic .
다양한 시도를 해봤고 앱의 info.plist에 폰트를 등록했습니다 ... 무슨 일인지 아는 사람 있나요?
답변:
우선 저는 SpriteKit이 아무런 차이를 만들지 않는다고 가정합니다.
마지막으로 앱이 시작될 때 글꼴에 사용할 수있는 이름을보기 위해 모든 글꼴을 나열하려고합니다. 이 작은 코드로 그렇게 할 것입니다.
NSArray *fontFamilies = [UIFont familyNames];
for (int i = 0; i < [fontFamilies count]; i++)
{
NSString *fontFamily = [fontFamilies objectAtIndex:i];
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
NSLog (@"%@: %@", fontFamily, fontNames);
}
인쇄 된 결과에서 글꼴을 검색합니다. 예를 들어 "Josefin"을 검색하면 실제 글꼴 이름이 "JosefinSansStd-Light"라는 것을 알 수 있습니다. 그 후에는 다음과 같은 방법으로 만 해당 글꼴을 사용해야합니다.
UIFont *customFont = [UIFont fontWithName:@"JosefinSansStd-Light" size:20];
iOS8에서는 글꼴 을 프로젝트에 직접 추가 하면 인터페이스 빌더에 표시됩니다. 이를 고려하여 코드를 수정하지만 프로그래밍 방식으로 iOS7 용 글꼴을 설정하고 xCode6 인터페이스 빌더에서 선택합니다. 추신. xCode6의 인터페이스 빌더는 아래 코드에 복사하여 붙여 넣을 수있는 올바른 글꼴 이름을 제공합니다.
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
if(SYSTEM_VERSION_LESS_THAN(@"8.0"))
{
UIFont *customFont = [UIFont fontWithName:@"OpenSans-Light" size:32];
self.registerLabel.font = customFont;
}
이것이 도움이되기를 바랍니다.
UIAppFonts
let fontFamilies = UIFont.familyNames() for familyName in fontFamilies { let fontNames = UIFont.fontNamesForFamilyName(familyName as String) println("\(familyName): \(fontNames)") }
for name in UIFont.familyNames() { debugPrint(UIFont.fontNamesForFamilyName(name)) }
사용자 정의 글꼴을 사용하는 데 문제가 없습니다. 다음과 같이하세요:
그리고 조언은 ..Prefix.pch 파일에 해당 이름을 매크로로 추가하십시오. 글꼴을 여러 번 사용해야하는 경우 프로젝트에서 사용하기가 더 쉽습니다.
문제는 글꼴을 제대로 등록했지만 앱 번들에 복사되지 않았다는 것입니다. 따라서 앱이 실행될 때 글꼴을 찾을 수 없습니다. 이것이 2 단계가 중요한 이유입니다. 나는 처음으로 그것을 알아 내려고 많은 시간을 보냈다. :)
이를 신속하게 달성하려면
앱이 시작될 때 글꼴의 사용 가능한 이름을보기 위해 모든 글꼴을 나열하려는 경우. 이 작은 코드로 그렇게 할 수 있습니다.
UIFont.familyNames.forEach {
print("fontFamily: \($0), fonts: \(UIFont.fontNames(forFamilyName: $0))")
}
UIFont.familyNames.forEach { print("fontFamily: \($0), fonts: \(UIFont.fontNames(forFamilyName: $0))") }
여러 번 시도한 결과 이러한 답변을 얻을 수 없었습니다. 허용 된 답변의 지침을 따르고 글꼴을 사용하는 스토리 보드에 숨겨진 레이블을 만드는 유일한 방법은 사용자 지정 글꼴을 얻었습니다. 프로그래밍 방식으로 글꼴을 사용할 수 있습니다. 내가 아는 이상하고 해키하지만 그것은 나를 위해 일했습니다.
Xcode 6을 사용하는 경우 가능한 한 쉽습니다. font
프로젝트에 폴더를 추가하고 폴더에 글꼴을 추가하기 만하면 됩니다.
위의 방법 중 어느 것도 효과가없고 사용자 정의 글꼴을 "프로그래밍 방식으로"만 사용하는 경우 (즉, xib에서 사용하지 않은 경우), 어느 곳에서나 하나의 xib 어딘가에서 적어도 한 번 사용해야합니다. .
(스튜어트 클락 추신-이미 대답 했으니 제발 신용이 없어요.하지만 나는 그의 대답을 놓 쳤기 때문에 그것을 다시 말하고 별도의 대답으로 게시하기로 결정했습니다. 읽었을 때 명확하지 않았습니다. xib에서 사용자 지정 글꼴을 테스트 할 때 우연히이 솔루션을 사용하고 다른 곳에서 프로그래밍 방식으로 작동하는 것을 보았지만 xib에서 글꼴을 제거하면 프로그래밍 방식으로 작동하지 않습니다.)
please try below code.
@end
@implementation UILabel (CustomFont)
-(void)setFontName:(NSString *)value{
CGFloat newsize = (self.font.pointSize * [UIScreen mainScreen].bounds.size.width)/320;
[self setFont:[UIFont fontWithName:self.font.fontName size:newsize]];
}
@end
@implementation UITextField (CustomFont)
-(void)setFontName:(NSString *)value{
CGFloat newsize = (self.font.pointSize * [UIScreen mainScreen].bounds.size.width)/320;
[self setFont:[UIFont fontWithName:self.font.fontName size:newsize]];
}
@end
@implementation UIButton (CustomFont)
-(void)setFontName:(NSString *)value{
CGFloat newsize = (self.titleLabel.font.pointSize * [UIScreen mainScreen].bounds.size.width)/320;
[self.titleLabel setFont:[UIFont fontWithName:self.titleLabel.font.fontName size:newsize]];
}
@end
@end
@interface UILabel (CustomFont)
-(void)setFontName:(NSString *)value;
@end
@interface UITextField (CustomFont)
-(void)setFontName:(NSString *)value;
@end
@interface UIButton (CustomFont)
-(void)setFontName:(NSString *)value;
@end