আমি কি একটি আইফোন অ্যাপ্লিকেশনটিতে একটি কাস্টম ফন্ট এম্বেড করতে পারি?


772

আমি কোনও অ্যাপ্লিকেশনটিতে পাঠ্য উপস্থাপনের জন্য একটি কাস্টম ফন্ট অন্তর্ভুক্ত করতে চাই, এটি লোড করুন এবং তারপরে স্ট্যান্ডার্ড UIKitউপাদানগুলির মতো এটি ব্যবহার করুন UILabel। এটা কি সম্ভব?


5
স্ট্যানফোর্ডের সিএস ১৯৩৩ পি (আইফোন অ্যাপ্লিকেশন ডেভলপমেন্ট) এর একটি বক্তৃতায় ইভান উল্লেখ করেছে যে কোনও ডিভাইসে আপনার নিজের ফন্ট ইনস্টল করা "প্রচুর পরিশ্রম", যার কমপক্ষে অর্থ এটি সম্ভব :-)
ইলিয়া বিরমন

2
আইফোন ৩.২ কাস্টম ফন্টের অনুমতি দেয়, তবে এটি কেবল আইপ্যাড (নীচে উত্তর দেখুন)
samvermette

6
আমি শেষ পর্যন্ত ছবি ব্যবহার করেছি।
এয়ারসোর্স লিমিটেড

2
বাহ ... এত কিছুর পরেও উত্তরটি এখনও চিত্র ... অবিশ্বাস্য। আমি সিস্টেম ফন্টের মতো একই ক্ষমতা সহ কাস্টম ফন্টগুলির একটি দৃ implementation় বাস্তবায়নের জন্য আশাবাদী। হায়রে ...
d2burke

1
আমি যে দশকটি চেয়েছি তার প্রতিফলিত করার জন্য আমি মূল প্রশ্নটি যথেষ্ট পরিমাণে ছাঁটাই করেছি। আমি অন্য সবাইকে তাদের মতামত এবং উত্তরগুলি যথাযথভাবে ছাঁটাতে উত্সাহিত করব।
এয়ারসোর্স লিমিটেড

উত্তর:


646

iOS 3.2 এবং পরবর্তীকালে এটি সমর্থন করে। আইফোন ওএস 3.2 ডক মধ্যে নতুন কী থেকে সরাসরি :

কাস্টম ফন্ট সমর্থনকারী
অ্যাপ্লিকেশনগুলি যা কাস্টম ফন্টগুলি ব্যবহার করতে চায় সেগুলি এখন তাদের অ্যাপ্লিকেশন বান্ডলে সেই ফন্টগুলি অন্তর্ভুক্ত করতে পারে এবং তাদের তথ্য.প্লেস্ট ফাইলে ইউআইএপিএফএফন্টস কী যুক্ত করে সিস্টেমের সাথে এই ফন্টগুলি নিবন্ধভুক্ত করতে পারে। এই কীটির মান হ'ল অ্যাপ্লিকেশনটির বান্ডেলে ফন্ট ফাইলগুলি চিহ্নিত করে স্ট্রিংগুলির একটি অ্যারে। সিস্টেমটি কীটি দেখলে এটি নির্দিষ্ট ফন্টগুলি লোড করে এবং সেগুলি অ্যাপ্লিকেশনে উপলব্ধ করে।

একবারে ফন্টগুলি সেট হয়ে গেলে Info.plistআপনি নিজের কাস্টম ফন্টগুলি আইবিতে বা অন্য কোনও প্রোগ্রামের মতো অন্য ফন্ট হিসাবে ব্যবহার করতে পারেন।

অ্যাপল বিকাশকারী ফোরামে একটি চলমান থ্রেড রয়েছে:
https://devforums.apple.com/thread/37824 (লগইন প্রয়োজন)

এবং এটি কীভাবে অর্জন করতে হবে তার একটি দুর্দান্ত এবং সাধারণ 3 ধাপের টিউটোরিয়াল এখানে রয়েছে (ভাঙা লিঙ্কটি সরানো হয়েছে)

  1. একটি উত্স হিসাবে Xcode ব্যবহার করে আপনার প্রজেক্টে আপনার কাস্টম ফন্ট ফাইলগুলি যুক্ত করুন
  2. কল করা আপনার Info.plistফাইলে একটি কী যুক্ত করুন UIAppFonts
  3. এই কীটি একটি অ্যারে করুন
  4. আপনার প্রতিটি ফন্টের জন্য, UIAppFontsঅ্যারের আইটেম হিসাবে আপনার ফন্ট ফাইলের পুরো নাম (এক্সটেনশন সহ) লিখুন
  5. সংরক্ষণ Info.plist
  6. এখন আপনার অ্যাপ্লিকেশনটিতে আপনি কেবল [UIFont fontWithName:@"CustomFontName" size:12]আপনার ইউআইএলবেলস এবং ইউআইটিেক্সটভিউস ইত্যাদির সাথে কাস্টম ফন্টটি ব্যবহার করতে কল করতে পারেন ...

এছাড়াও: ফন্টগুলি আপনার অনুলিপি বান্ডিল সংস্থানগুলিতে রয়েছে তা নিশ্চিত করুন।


14
আইওএস 4 এর জন্য ধাপে ধাপে টিউটোরিয়ালটি এখানে রয়েছে: blog.beefyapps.com/2010/06/custom-fouts-in-ios-4
pm_labs

15
এই টিউটোরিয়ালটি খুব ভাল। shang-liang.com/blog/custom-fouts-in-ios4 গুরুত্বপূর্ণভাবে, [ইউআইফন্ট ফন্টউইননাম: ...] এর সাথে এনএসএস স্ট্রিংটি ফাইলের নামের চেয়ে ফন্টের ওএস নাম।
উইলস্টার

152
আইওএস দ্বারা প্রয়োজনীয় ফন্টটির প্রকৃত পোস্টস্ক্রিপ্টের নামটি খুঁজে পেতে অন্য কেউ ফন্টফোরজ ইনস্টল করতে 3 ঘন্টা ব্যয় করার আগে। আমি উল্লেখ করব যে আপনি এই তথ্যটি সন্ধান করতে ফন্ট বইয়ের ফন্টে কেবল Cmd + I টিপতে পারেন।
ড্যানিয়েল উড

42
সঠিক ফন্টের নাম পেতে সংগ্রাম করার পরে, আমি কেবল ইনস্টল করা ফন্টগুলি তালিকাভুক্ত করেছি এবং এটি পেয়েছি। খুব উপকারী. এখানে কোডটি রয়েছে: (ইউএসএফএন ফ্যামিলির নামসমূহে এনএসএসটিং * পরিবারের নাম) {এনএসএলগ (@ "পরিবার% @", পারিবারিক নাম); এনএসএলগ (@ "নামগুলি =% @", [ইউআইএফএন্ট ফন্টনামফরমিলি নাম: পারিবারিক নাম]); }
স্টিভ পটার

26
যদি আপনার কোডটি কাজ না করে তবে নিশ্চিত হয়ে নিন যে আপনি "বিল্ড পর্যায়সমূহ"
মিকি

299

সম্পাদনা করুন: আইওএস ৩.২ হিসাবে, এই কার্যকারিতাটি অন্তর্নির্মিত you যদি আপনাকে প্রাক -৩.২ সমর্থন করতে হয় তবে আপনি এখনও এই সমাধানটি ব্যবহার করতে পারেন।

আমি একটি সাধারণ মডিউল তৈরি করেছি যা UILabel.ttf ফাইলগুলি লোড করে এবং পরিচালনা করে। আমি এটি অ্যাপাচি লাইসেন্সের অধীনে ওপেনসোর্স প্রকাশ করেছি এবং এটি এখানে গিথুব এ রেখেছি

গুরুত্বপূর্ণ ফাইলগুলি হ'ল FontLabel.hএবং FontLabel.m

এটি জেনেরিক্রিচের উত্তর থেকে কিছু কোড ব্যবহার করে ।

উত্সটি এখানে ব্রাউজ করুন।

অথবা

  • সংস্থানগুলিতে আপনার ফন্ট ফাইলটি অনুলিপি করুন

  • আপনার Info.plistফাইলটিতে একটি চাবি যুক্ত করুন যা ইউআইএএপিএফফন্টস। ("অ্যাপ্লিকেশন দ্বারা সরবরাহ করা হরফ)

  • এই কীটি একটি অ্যারে করুন

  • আপনার প্রতিটি ফন্টের জন্য, ইউআইএএপিএফএফন্টস অ্যারেতে আইটেম হিসাবে আপনার ফন্ট ফাইলের পুরো নাম (এক্সটেনশন সহ) লিখুন

  • সংরক্ষণ Info.plist

  • এখন আপনার আবেদনে আপনি কেবল এবং [UIFont fontWithName:@"CustomFontName" size:15]আপনার ইত্যাদির সাথে কাস্টম ফন্টটি ব্যবহার করার জন্য কল করতে পারেন ...UILabelsUITextViews

আরও তথ্যের জন্য


2
আমি আপনার কোড ব্যবহার করার চেষ্টা করেছি তবে এটি ফন্টের উপর নির্ভর করে প্রায়শই ক্র্যাশ হয়ে যায়। উদাহরণস্বরূপ, আফ্রিকা বা টিকি ফন্টগুলি এখান থেকে ব্যবহার করার চেষ্টা করুন foutspace.com/category/tiki
র্থস্পেস

2
এই গ্রন্থাগারটি দুর্দান্ত কাজ করে। যদিও উল্লম্ব ব্যবধানে আমার সাহায্য দরকার। কীভাবে এটি করা যায় তা অনুমান করতে পারছি না। সুতরাং আমার কাছে এই বার্তাটি রয়েছে। নাম্বার অফলাইন = 3; আমি লাইন 1 এবং লাইন 2 এবং লাইন 3 এর মধ্যে উল্লম্ব ব্যবধানটি কীভাবে নিয়ন্ত্রণ করব? আপনাকে ধন্যবাদ, টি
টিপপাসিংক

2
@ কমন্ডা হ্যালো কমান্ডা, আপনার উত্তরে প্রদত্ত লিঙ্কটি অনুপলব্ধ বলে মনে হচ্ছে।
পার্থ ভট্ট 28'13

5
@ParthBhatt আপনি প্রদান সমাধান ব্যবহার করা উচিত stackoverflow.com/a/2616101/21447 যেহেতু এই কার্যকারিতা এখন CocoaTouch দ্বারা প্রদান করা হয়, FontLabel পরিবর্তে।
কমান্ডা

2
@ পার্থবিট: আমি জানি না কেন রেপোটি এখন আর জিঙ্গায়
লিলি

116

আইওএস 4 এ কাস্টম ফন্টগুলি ব্যবহার করার একটি সহজ উপায় রয়েছে ।

  1. এক্সকোডে আপনার ফন্ট ফাইল (উদাহরণস্বরূপ Chalkduster.ttf) প্রকল্পের সংস্থান ফোল্ডারে যুক্ত করুন।
  2. info.plistএকটি নতুন কী খুলুন এবং যুক্ত করুন UIAppFonts। এই কীটির প্রকারটি অ্যারে হওয়া উচিত।
  3. এক্সটেনশন ( Chalkduster.ttf) সহ এই অ্যারেটিতে আপনার কাস্টম ফন্টের নাম যুক্ত করুন ।
  4. এখন আপনি [UIFont fontWithName:@"Chalkduster" size:16]আপনার অ্যাপ্লিকেশন ব্যবহার করতে পারেন ।

দুর্ভাগ্যক্রমে, আইবি কাস্টম ফন্টগুলির সাহায্যে লেবেল শুরু করতে দেয় না। এই সমস্যাটি সমাধান করতে এই প্রশ্নটি দেখুন । আমার প্রিয় সমাধানটি কাস্টম UILabelসাবক্লাস ব্যবহার করা :

@implementation CustomFontLabel

- (id)initWithCoder:(NSCoder *)decoder
{
    if (self = [super initWithCoder: decoder])
    {
        [self setFont: [UIFont fontWithName: @"Chalkduster" size: self.font.pointSize]];
    }
    return self;
}

@end

3
এটি কেবল 4.0+ নয়, 3.2-এ সমর্থিত বলে মনে হচ্ছে
জেসি রুসাক

1
ধন্যবাদ! আমার যে সমস্যাটি হচ্ছে তা হ'ল কাস্টম ফন্টগুলি তাদের বিল্ট-ইন সহযোগীদের বনাম কিছুটা উঁচু (নীচে অতিরিক্ত স্থান) স্কু করে বলে মনে হচ্ছে। আমি গিটহাব থেকে ফন্টলবেল রেপো ব্যবহার করার চেষ্টা করেছি, যা কিছু সময়কে সহায়তা করে তবে সমস্ত সময় নয়।
জো

12
এটি লক্ষণীয় যে আপনি ইউআইএফএন্ট নির্মাণকারীর কাছে যে স্ট্রিংটি পাস করেন তা হ'ল ফাইলের নামটি ফন্টের অভ্যন্তরীণ নামটি বর্ধন নয় । আমি সংক্ষিপ্ত করে রেখেছি এমন একটি ফাইল নাম সহ একটি ফন্ট লোড করতে আমার সমস্যা হয়েছিল। আমি যখন ফাইলটিতে থাকা পুরো ফন্টের নাম ব্যবহার করতাম তখন ফন্টটি লোড হয়ে যায়।
স্লেটন

5
স্লেটন যা বলেছে তা সমালোচনাযোগ্য। [ইউআইএফএন্ট ফন্টউইথনাম: হরফের "পুরো নাম" প্রত্যাশা করে, যা এটি ফন্ট বুকে খোলার মাধ্যমে এবং নির্বাচন করে দৃশ্যমান হয়: প্রাকদর্শন -> ফন্টের তথ্য দেখান
ইলেক্ট্রোম্যাগগট

51

ইনফো.প্লিস্টে "অ্যাপ্লিকেশন দ্বারা সরবরাহ করা হরফ" এন্ট্রি যুক্ত করুন এবং ফন্টের নামগুলি স্ট্রিং হিসাবে অন্তর্ভুক্ত করুন:

Fonts provided by application
           Item 0        myfontname.ttf
           Item 1        myfontname-bold.ttf
           ...

তারপরে আপনার ফন্টটি চালিয়ে অন্তর্ভুক্ত করা হয়েছে তা নিশ্চিত করে দেখুন:

for (NSString *familyName in [UIFont familyNames]) {
    for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
         NSLog(@"%@", fontName);
    }
}

মনে রাখবেন যে আপনার টিটিএফ ফাইলের নামটি আপনার লেবেলের জন্য ফন্ট সেট করার সময় আপনি ব্যবহার করেন না একই নাম হতে পারে (আপনি "ফন্টউইথনাম" প্যারামিটার পেতে উপরের কোডটি ব্যবহার করতে পারেন):

[label setFont:[UIFont fontWithName:@"MyFontName-Regular" size:18]];

36

সম্পাদনা করুন: এই উত্তরটি iOS3.2 হিসাবে অকার্যকর; ইউআইএএপিএফফন্ট ব্যবহার করুন

আমি কাস্টম UIFontগুলি সফলভাবে লোড করতে সক্ষম হলাম একমাত্র উপায় হ'ল ব্যক্তিগত গ্রাফিক্স সার্ভিস ফ্রেমওয়ার্কের মাধ্যমে।

নিম্নলিখিতটি .ttfঅ্যাপ্লিকেশনের মূল বান্ডেলে সমস্ত ফন্ট লোড করবে :

BOOL GSFontAddFromFile(const char * path);
NSUInteger loadFonts()
{
    NSUInteger newFontCount = 0;
    for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
        newFontCount += GSFontAddFromFile([fontFile UTF8String]);
    return newFontCount;
}

ফন্টগুলি লোড হয়ে গেলে, সেগুলি কেবল অ্যাপল-সরবরাহিত ফন্টগুলির মতো ব্যবহার করা যেতে পারে:

NSLog(@"Available Font Families: %@", [UIFont familyNames]);
[label setFont:[UIFont fontWithName:@"Consolas" size:20.0f]];

ভবিষ্যতে এপিআই নিখোঁজ হওয়ার পরে গ্রাফিক্স সার্ভিসগুলি রানটাইমের সময়ও লোড করা যেতে পারে:

#import <dlfcn.h>
NSUInteger loadFonts()
{
    NSUInteger newFontCount = 0;
    NSBundle *frameworkBundle = [NSBundle bundleWithIdentifier:@"com.apple.GraphicsServices"];
    const char *frameworkPath = [[frameworkBundle executablePath] UTF8String];
    if (frameworkPath) {
        void *graphicsServices = dlopen(frameworkPath, RTLD_NOLOAD | RTLD_LAZY);
        if (graphicsServices) {
            BOOL (*GSFontAddFromFile)(const char *) = dlsym(graphicsServices, "GSFontAddFromFile");
            if (GSFontAddFromFile)
                for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
                    newFontCount += GSFontAddFromFile([fontFile UTF8String]);
        }
    }
    return newFontCount;
}

যারা আশ্চর্য তাদের লক্ষ্য করুন, এটি কাজ করে, তবে ফন্টটি ব্যবহার করার আগে আপনাকে লোডফন্টগুলি কল করতে হবে - তারা অ্যাপ্লিকেশন জুড়ে লোড থাকা বলে মনে হচ্ছে না
পিক্সেল

ওএস 3.0 এ আপনাকে অবশ্যই দ্বিতীয় দ্বিতীয় উদাহরণটি ব্যবহার করা দরকার, আমদানিটি ভুলে যাবেন না। আমার জন্য বেশ ভাল কাজ করেছেন।
এম রায়ান

অন্য নোট - এটি একটি ব্যক্তিগত কাঠামো, এবং এটি গতিশীলভাবে লোড করে ... এটি উভয়ই সম্ভবত অ্যাপস্টোরের মধ্যে আপনার অ্যাপ্লিকেশনটির গ্রহণযোগ্যতা বন্ধ করবে।
পিক্সেল

উপসংহারটি কী? এই পদ্ধতির বিকল্প কী?
রাজ পবন গমদল

1
আমিও [NSString sizeWithFont:[UIFont fontWithName:@"customFont" size:14]];চেষ্টা করেছি যে কোনও কাস্টম ফন্টের জন্য 0 প্রস্থ এবং উচ্চতা প্রদান করে তাও নোট করুন ।
লুক ম্যাকিনিइस

34

সঙ্গে iOS 8+ এবং Xcode 6+ আপনি এই সহজে করতে পারেন। পদক্ষেপ এখানে:

1) আপনার ফন্টটি Xcodeসমর্থনযোগ্য ফাইল ফোল্ডারে টেনে আনুন । টার্গেট বিভাগে যুক্ত করতে আপনার অ্যাপকে চিহ্নিত করতে ভুলবেন না । এই মুহুর্ত থেকে আপনি এই ফন্টটি ব্যবহার করতে IBএবং এটি ফন্ট প্যালেট থেকে চয়ন করতে পারেন ।

এখানে চিত্র বর্ণনা লিখুন

2) এই ফন্টটি আপনার ডিভাইসে উপলভ্য করতে, আপনার খুলুন info.plistএবং Fonts provided by applicationকী যুক্ত করুন। এটিতে আইটেম 0 কী থাকবে, আপনাকে অবশ্যই নিজের ফন্টের নামটি মান হিসাবে যুক্ত করতে হবে। হরফের নাম আপনার ফন্টের ফাইলের নাম থেকে পৃথক হতে পারে। তবে প্রথমে, এই কাজটি বেশিরভাগ ক্ষেত্রে আপনার ফাইলের নাম যুক্ত করার চেষ্টা করুন।

এখানে চিত্র বর্ণনা লিখুন

যদি তা না হয় তবে এই নিবন্ধটি সর্বদা আমাকে সাহায্য করেছিল।

আপনাকে আপনার ফন্টের নাম সন্ধান করতে সহায়তা করার জন্য এই নিবন্ধ থেকে কোডের স্লিপ স্নিপেট এখানে দেওয়া হয়েছে।

func allFonts(){

   for family in UIFont.familyNames(){

       println(family)


       for name in UIFont.fontNamesForFamilyName(family.description)
       {
           println("  \(name)")
       }

   }

}

সম্পাদনা

আমি যে আপনি আপনার ফন্ট ফাইল যোগ করতে হবে উল্লেখ করতে চাই, টার্গেট এর বিল্ড দশা , কপি বান্ডেল সম্পদ । এটি ছাড়া, আপনি ডিভাইসে আপনার ফন্ট দেখতে পাবেন না। এবং এটি অপ্রত্যাশিত আচরণের দিকে পরিচালিত করতে পারে।

উদাহরণস্বরূপ, আমি কাস্টম ফন্ট আছে bugযখন আমি একটি মুখোমুখি UITextField, কিন্তু এই ফন্টটি অনুলিপি বান্ডিল সংস্থান ছিল না । আর যখন আমি segue viewcontrollerএই সঙ্গে textfield, সেখানে 4 সেকেন্ডের সম্পর্কে একটি বিলম্ব করার আগে viewDidLoadফাংশন বলা হয়। হরফ হরফের সমস্যার সমাধান এই বিলম্বকে সরিয়ে দেয়। সুতরাং, এটি দুবার পরীক্ষা করার পরামর্শ দিন। (rdar: // 20028250) বিটিডব্লু, আমি বাগটি পুনরুত্পাদন করতে সক্ষম হইনি, তবে আমি নিশ্চিত যে সমস্যাটি ফন্টের সাথে ছিল।


1
শুধু একটি নোট. আইবিতে সঠিকভাবে কনফিগার করা থাকলেও লঞ্চস্ক্রিনে কাস্টম ফন্টগুলি উপলভ্য নয়। যা যুক্তিযুক্ত হতে পারে।
রিভেরা 14

@ রিভেরা বাহ, দুর্দান্ত নোট! তা জানতাম না। এর পরিবর্তে পাঠ্যের সাহায্যে ইউআইআইমেজ ব্যবহার করা সম্ভাব্য বিকল্প, আমি মনে করি।
Dima Deplov

@ রিভেরা, এই তথ্যের জন্য ধন্যবাদ- এটি কোথাও নথিভুক্ত করা হয়েছে? আমি বারবার ভেবেছিলাম যে আমি একটি পদক্ষেপ মিস করেছি the
স্পঞ্জসাক

@ স্পঞ্জসাক আপনার প্রশ্ন সম্পর্কে নিশ্চিত নন তবে এখানে কিছু ডক্স রয়েছে বিকাশকারী
অ্যাপ্লিকেশন / লাইব্রেরি / আইস /

27

আমি এটি এইভাবে করেছি:

ফন্টটি লোড করুন:

- (void)loadFont{
  // Get the path to our custom font and create a data provider.
  NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"mycustomfont" ofType:@"ttf"]; 
  CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontPath UTF8String]);

  // Create the font with the data provider, then release the data provider.
  customFont = CGFontCreateWithDataProvider(fontDataProvider);
  CGDataProviderRelease(fontDataProvider); 
}

এখন, আপনার মধ্যে drawRect:, এই জাতীয় কিছু করুন:

-(void)drawRect:(CGRect)rect{
    [super drawRect:rect];
    // Get the context.
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextClearRect(context, rect);
    // Set the customFont to be the font used to draw.
    CGContextSetFont(context, customFont);

    // Set how the context draws the font, what color, how big.
    CGContextSetTextDrawingMode(context, kCGTextFillStroke);
    CGContextSetFillColorWithColor(context, self.fontColor.CGColor);
    UIColor * strokeColor = [UIColor blackColor];
    CGContextSetStrokeColorWithColor(context, strokeColor.CGColor);
    CGContextSetFontSize(context, 48.0f);

    // Create an array of Glyph's the size of text that will be drawn.
    CGGlyph textToPrint[[self.theText length]];

    // Loop through the entire length of the text.
    for (int i = 0; i < [self.theText length]; ++i) {
        // Store each letter in a Glyph and subtract the MagicNumber to get appropriate value.
        textToPrint[i] = [[self.theText uppercaseString] characterAtIndex:i] + 3 - 32;
    }
    CGAffineTransform textTransform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
    CGContextSetTextMatrix(context, textTransform);
    CGContextShowGlyphsAtPoint(context, 20, 50, textToPrint, [self.theText length]);
}

মূলত আপনাকে ফন্টে আপনার অফসেটটি খুঁজে পেতে (এখানে, আমাকে 29 টি দেখুন) ফন্টে খুঁজে পেতে টেক্সটটির মাধ্যমে কিছু জবরদস্তি লুপিং করতে এবং ম্যাজিক নম্বরটি দিয়ে ফিউটিং করতে হবে, তবে এটি কার্যকর হয়।

এছাড়াও, আপনাকে ফন্টটি আইনীভাবে এমবেডযোগ্য কিনা তা নিশ্চিত করতে হবে। বেশিরভাগ লোকেরা নেই এবং এমন আইনজীবী আছেন যারা এই ধরণের জিনিসটিতে বিশেষজ্ঞ হন, তাই সতর্ক হন।


1
আমি নিশ্চিত যে এটি কার্যকরভাবে কাজ করে তবে আমি (সত্যই সত্যই) ইউআইএলবেল এবং ইউআইটিেক্সটভিউ বর্তমানে আমার জন্য যা কিছু করি - বিশেষত শব্দ মোড়ানো, অবস্থান নির্ধারণ এবং সম্পাদনা সম্পাদনা করার জন্য আমার নিজের লেআউট ইঞ্জিনটি লিখতে চাই না।
এয়ারসোর্স লিমিটেড

1
AFAICS, এটি কেবল বড় হাতের অক্ষরগুলির সাথেই কাজ করে, তাই 'বড় হাতের স্ট্রিং' কল।
মার্টিন কোট

2
"জাদু নম্বর" কৌশলটি খাঁটি হ্যাক যা সত্যই কার্যকর হয় না তাই আমি নীচু হয়ে আছি। আসল সমাধানটি টিটিএফ ফাইল থেকে সিএম্যাপ টেবিল পাওয়া।
মার্টিন কোট

1
এটি সরাসরি গ্রাফিক্সের সাথে ফন্ট ব্যবহার করার জন্য একটি ঝরঝরে তথ্য। কেবল ভবিষ্যতের পাঠকদের জন্য আপডেট করার জন্য: নতুন ওএসে, কেউ মূল পাঠ্য ব্যবহার করতে পারে এবং করা উচিত। বিকল্পভাবে, কেউ ব্যবহার করতে পারে CGContextShowTextAtPoint()- যদিও এটি ইউটিএফ -8 এর সাথে কাজ করে না।
ইভান ভুইসিকা

20

হ্যাঁ, আপনি কাস্টম ফন্টগুলি অন্তর্ভুক্ত করতে পারেন। ইউআইএফন্টের ডকুমেন্টেশনগুলি দেখুন, বিশেষত, fontWithName:size:পদ্ধতিটি।

1) নিশ্চিত করুন যে আপনি ফন্টটি আপনার সংস্থান ফোল্ডারে অন্তর্ভুক্ত করেছেন।

2) ফন্টের "নাম" অগত্যা ফাইলের নাম নয়।

3) আপনার যে ফন্টটি ব্যবহার করার আইনী অধিকার রয়েছে তা নিশ্চিত করুন। এটি আপনার অ্যাপ্লিকেশনটিতে অন্তর্ভুক্ত করে আপনি এটি বিতরণও করছেন এবং এটি করার অধিকার আপনার থাকা দরকার।


আপনি কি আসলে এই সফলতাটি করেছেন? আমি এটিকে কাজ করতে পারি না, এবং গুগলিং কেবল অন্য ব্যক্তিদের সন্ধান করে যারা এটি চেষ্টা করেছে এবং ব্যর্থ হয়েছে।
এয়ারসোর্স লিমিটেড

হ্যাঁ. আমার আছে. আবার, নিশ্চিত হয়ে নিন যে আপনি সঠিক ফন্টের নামটি ব্যবহার করছেন।
আগস্ট

1
আপনি যখন বলবেন হরফের "নাম" ফাইলের প্রয়োজনীয়ত ফাইল নাম নয় ... সঠিক নামটি কীভাবে খুঁজে পাবেন?
কিথ ফিটজগারেল্ড

7
হ্যাঁ, এই উত্তরটি ভুল। আপনি বাক্সের বাইরে এটি করতে পারবেন না।
জোনাথন স্টার্লিং

আইওএস 9 আপডেট, ইউআইফোন্ট ডক্স কাস্টম ফন্টগুলি সম্পর্কে কিছুই উল্লেখ করে না
Cbas

20

আপনি ব্যবহার করে থাকেন xcode 4.3, আপনি যোগ আছে fontকরার Build Phaseঅধীনে Copy Bundle Resourcesঅনুযায়ী, https://stackoverflow.com/users/1292829/arne থ্রেড মধ্যে কাস্টম হরফ Xcode 4.3 । এটি আমার পক্ষে কাজ করেছে, কাস্টম ফন্টগুলির জন্য আমার অ্যাপে কাজ করার জন্য আমি যে পদক্ষেপগুলি নিয়েছি তা এখানে:

  1. আপনার প্রকল্পে ফন্ট যুক্ত করুন। আমি এক্সকোডের পছন্দটি তৈরি এবং গ্রহণ করে একটি নতুন গ্রুপে OTF(বা TTF) ফাইলগুলি টেনে এনে ফেলেছি copying the files over to the project folder
  2. UIAppFontsঅ্যারের মধ্যে আইটেম হিসাবে তালিকাভুক্ত আপনার ফন্টগুলি সহ অ্যারে তৈরি করুন । কেবলমাত্র names, এক্সটেনশনটি নয় (যেমন " GothamBold", " GothamBold-Italic")।
  3. স্ক্রিনের বাম দিকে project nameউপরের দিকে পথে ক্লিক করুন Project Navigator
  4. Build Phasesএক্সকোডের প্রধান অঞ্চলে প্রদর্শিত ট্যাবটিতে ক্লিক করুন ।
  5. " Copy Bundle Resources" বিভাগটি প্রসারিত "+"করুন এবং ফন্টটি যুক্ত করতে ক্লিক করুন ।
  6. যে পপ খোলার যখন আপনি ক্লিক ফাইল ন্যাভিগেটর থেকে ফন্ট ফাইল নির্বাচন করুন "+"
  7. আপনার প্রতিটি ফন্টের জন্য এটি করুন add to the project

12

এটি কীভাবে করবেন তা এখানে ধাপে ধাপে দেওয়া নির্দেশাবলী। অতিরিক্ত গ্রন্থাগার বা কোনও বিশেষ কোডিংয়ের দরকার নেই।

http://shang-liang.com/blog/custom-fonts-in-ios4/

বেশিরভাগ সময় ইস্যুটি হ'ল ফন্টের সাথে মেথড নয়। এটি করার সর্বোত্তম উপায় হ'ল ফোঁটা ব্যবহার করা যা নিশ্চিতভাবে রায়দান বা জিওজিয়ার মতো কাজ করবে। তারপরে উদ্দেশ্যযুক্ত ফন্টে পরিবর্তন করুন। যদি এটি কাজ না করে, তবে ফন্টের নামটি সঠিক নয়, বা ফন্টটি ভালভাবে তৈরি ফন্ট নয়।


12

আপনার বিদ্যমান আইওএস অ্যাপে একটি নতুন ফন্ট যুক্ত করা খুব সহজ।

আপনার রিসোর্স ফোল্ডারে আপনাকে হরফ যেমন ফন্ট.টিটিএফ যুক্ত করতে হবে।

আপনার আবেদন খুলুন info.plist। "অ্যাপ্লিকেশন দ্বারা সরবরাহ করা হরফ" হিসাবে একটি নতুন সারি যুক্ত করুন এবং ফন্টের নাম ফন্ট.টিটিএফ হিসাবে টাইপ করুন।

এবং ফন্ট হিসাবে সেট করার সময় হিসাবে setFont:"corresponding Font Name"

আপনার ফন্ট যুক্ত হয়েছে কিনা তা আপনি পরীক্ষা করতে পারেন NSArray *check = [UIFont familyNames];

এটি আপনার অ্যাপ্লিকেশন সমর্থন সমস্ত ফন্ট ফেরত দেয়।


11

আমি এখানে আমার প্রিয় একটি সংক্ষিপ্ত টিউটোরিয়াল অনুসরণ করার পরামর্শ দেব: http://codewithchris.com/common-mistakes-with-adding-custom-fouts-to-your-ios-app/ যেখান থেকে এই তথ্যটি আসে।

পদক্ষেপ 1 - আপনার প্রকল্পের মধ্যে ফাইন্ডার থেকে আপনার .ttf বা .otf টেনে আনুন

দ্রষ্টব্য - আপনার প্রধান অ্যাপ্লিকেশন টার্গেটে 'লক্ষ্যবস্তুতে যুক্ত করতে' বক্সটি ক্লিক করতে ভুলবেন না

আপনার প্রকল্পে ফন্ট ফাইলগুলি টানুন এবং এগুলিকে আপনার টার্গেটে যুক্ত করতে ক্লিক করুন

আপনি যদি এটিকে আপনার টার্গেটে যুক্ত করতে ক্লিক করতে ভুলে যান তবে আপনার প্রকল্পের স্তরক্রমের ফন্ট ফাইলটিতে ক্লিক করুন এবং ডান পাশের প্যানেলে লক্ষ্য সদস্যপদ বিভাগের মূল অ্যাপ্লিকেশন টার্গেটটি ক্লিক করুন

আপনি যদি ভুলে যান তবে অ্যাপ টার্গেটে ফন্টগুলি কীভাবে যুক্ত করবেন

নিশ্চিত করুন যে আপনার ফন্ট নিশ্চিত তারা আপনার দেখা আপনার অ্যাপ লক্ষ্য করা অংশ করতে কপি বান্ডেল সম্পদ মধ্যে দশা বিল্ড

ফন্টগুলি অ্যাপ টার্গেটের অংশ কিনা তা দেখতে কীভাবে সংস্থানগুলি পরীক্ষা করতে হয়

পদক্ষেপ 2 - আপনার প্লিস্টে ফন্ট ফাইলের নাম যুক্ত করুন

আপনার তথ্য বিভাগে কাস্টম আইওএস টার্গেট বৈশিষ্ট্যে যান এবং বিভাগটির আইটেমগুলিতে একটি চাবি যুক্ত করুন (আপনি এটি টাইপ করার সাথে সাথে এটি একটি বিকল্প হিসাবে উপস্থিত হওয়া উচিত এবং এটি নিজেকে অ্যারে হিসাবে সেট আপ করবে the ছোট তীরটি ক্লিক করুন অ্যারে আইটেমগুলি খোলার জন্য এবং আপনার অ্যাপ্লিকেশনকে এটি জানানোর জন্য যে আপনি যুক্ত করেছেন সেগুলি .ttf বা .otf ফাইলের নাম টাইপ করুন এবং এটি আপনার ফন্ট ফাইলগুলি উপলভ্য করতে চানFonts provided by application

দ্রষ্টব্য - এই ধাপের পরে যদি আপনার অ্যাপ্লিকেশনটি ক্র্যাশ হয়ে যায় তবে আপনি এখানে যুক্ত আইটেমগুলিতে আপনার বানানটি পরীক্ষা করুন

কাস্টম ফন্ট যুক্ত উদাহরণস্বরূপ

পদক্ষেপ 3 - আপনার ফন্টগুলির নামগুলি সন্ধান করুন যাতে আপনি সেগুলি কল করতে পারেন

বেশিরভাগ ক্ষেত্রে আপনার অ্যাপ্লিকেশন দ্বারা দেখা ফন্টের নামটি হ'ল এই ফন্টের ফাইলনামের উপর ভিত্তি করে বলে মনে হয় তার থেকে আলাদা হয়, আপনার কোডটিতে এটি রাখুন এবং আপনার কোডটিতে ফন্টের নামটি কল করতে আপনার অ্যাপ্লিকেশনটি যে লগটি দেখায় তা দেখুন

দ্রুতগতি

for family: String in UIFont.familyNames(){
  print("\(family)")
  for names: String in UIFont.fontNamesForFamilyName(family){
      print("== \(names)")
  }
}

উদ্দেশ্য গ

for (NSString* family in [UIFont familyNames]){
    NSLog(@"%@", family);
    for (NSString* name in [UIFont fontNamesForFamilyName: family]){
        NSLog(@"  %@", name);
    }
}

আপনার লগ এ জাতীয় কিছু দেখতে হবে:

ফন্টের নাম খুঁজতে লগ অনুসন্ধানের উদাহরণ

পদক্ষেপ 4 - পদক্ষেপ 3 থেকে নামটি ব্যবহার করে আপনার নতুন কাস্টম ফন্টটি ব্যবহার করুন

দ্রুতগতি

 label.font = UIFont(name: "SourceSansPro-Regular", size: 18)

উদ্দেশ্য গ

 label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:18];

10

অনুসন্ধানকারী এবং "তথ্য পান" তে টিটিএফ খুঁজুন। "পুরো নাম:" শিরোনামের অধীনে এটি আমাকে একটি নাম দিয়েছিল যা আমি তার সাথে ব্যবহার fontWithNameকরেছিলাম (আমি কেবল সঠিক নামটি অনুলিপি করে পেস্ট করেছি, এক্ষেত্রে কোনও '.ttf' এক্সটেনশন প্রয়োজনীয় ছিল না)।


8

এটি এখনও আউট হয়নি, তবে কোকোস 2 ডি (2 ডি গেম ফ্রেমওয়ার্ক) এর পরবর্তী সংস্করণ অক্ষর মানচিত্র হিসাবে পরিবর্তনশীল দৈর্ঘ্যের বিটম্যাপ ফন্টকে সমর্থন করবে।

http://code.google.com/p/cocos2d-iphone/issues/detail?id=317

এই সংস্করণটির জন্য লেখকের কোনও মুক্তির তারিখ নেই, তবে আমি এমন একটি পোস্ট দেখলাম যা এটি নির্দেশ করেছিল যে এটি পরবর্তী বা দুই মাসে হবে।


8

একটি গুরুত্বপূর্ণ নোটিশ: আপনার ফন্টের সাথে যুক্ত "পোস্টস্ক্রিপ্টের নাম" ব্যবহার করা উচিত, এর পুরো নাম বা পরিবারের নাম নয়। এই নামটি প্রায়শই ফন্টের সাধারণ নামের থেকে আলাদা হতে পারে be


7

এই পদক্ষেপ অনুসরণ করুন

1) আপনার প্রকল্পে আপনার ফন্ট অনুলিপি করুন

2) .plistসোর্স কোড মোডে আপনার ফাইলটি খুলুন ... (দ্রষ্টব্য- খুলুন না info.plist)

3) তার আগে - আপনার ফন্টটিতে ডান ক্লিক করুন এবং installএটি আপনার সিস্টেমে ফন্টফোরেজ বা অনুরূপ সম্পাদক এবং এটি খুলুন , এটি হওয়া উচিতinstall

4) এটি টাইপ করুন

 <key>UIAppFonts</key>
<array>
    <string>MyriadPro.otf</string>
</array>

5) আপনার কোডটি টাইপ করুন class .m

 [lblPoints setFont:[UIFont fontWithName:@"Myriad Pro" size:15.0]];

এখানে এলবিএলপয়েন্টগুলি আপনার হিসাবে পরিবর্তন হবে UILabel

সম্পন্ন!! এখনও যদি আপনার ফন্টটি কাজ না করে তবে প্রথমে আপনার ফন্টের সামঞ্জস্যতা পরীক্ষা করুন


1
খোলেন না কেন info.plist?
র‌্যাপটার

point ম পয়েন্টে মাইরেড এবং প্রো এর মধ্যে কেন স্থান যখন পয়েন্ট 4-এ প্লিস্টে নেই?
জয়ন্ত কাঁচাট

@ জয়ন্তরওয়াত এটির ফন্টের নাম যা আমরা ফন্ট ইনস্টল করার পরে সিস্টেমে প্রদর্শিত হয়, এবং .plist হ'ল ফন্ট ফাইলের নাম [.ttl বা otf]
এ।

@KirtikumarA। হ্যাঁ অ্যাপ্লিকেশানে সফলভাবে it..implemented পেয়েছিলাম ..
রাওয়াত জয়ন্ত

@ জয়ন্ত্রওয়াত যদি আমার সমাধানটি সহায়তা করে তবে উত্তরের জন্য আপনাকে অনুরোধ জানাতে অনুরোধ করুন যাতে অন্যান্য ব্যবহারকারীরাও একইভাবে সহায়তা নিতে পারে
কির্তিকুমার এ।

6

হতে পারে লেখক ফন্টটি একটি ম্যাক FOND নাম দিতে ভুলে গেছেন ?

  1. ফন্টফর্গে ফন্টটি খুলুন তারপর এলিমেন্ট> ফন্ট তথ্য এ যান
  2. একটি "ম্যাক" বিকল্প রয়েছে যেখানে আপনি FOND নাম সেট করতে পারেন।
  3. ফাইল> এক্সপোর্ট ফন্টের আওতায় আপনি একটি নতুন টিটিএফ তৈরি করতে পারবেন

আপনি রফতানি কথোপকথনে "অ্যাপল" বিকল্পটি চেষ্টা করে দেখতে পারেন।

অস্বীকৃতি : আমি আইফোন বিকাশকারী নই!


6

আমি এই পৃষ্ঠায় বিভিন্ন পরামর্শ আইওএস ৩.১.২ এ চেষ্টা করে যাচ্ছি এবং এগুলি আমার সিদ্ধান্তে:

[UIFont fontWithName:size:]রিসোর্স ডিরেক্টরিতে ফন্টগুলির সাথে সহজেই ব্যবহার করা কার্যকর হবে না, এমনকি ফন্টফর্স ব্যবহার করে FOND নাম সেট করা থাকলেও।

[UIFont fontWithName:size:]GSFontAddFromFile ব্যবহার করে ফন্টগুলি প্রথমে লোড করা হলে কাজ করবে। তবে GSFontAddFromFileআইওএস ৩.১.২ এর অংশ নয় তাই এটি @ প্রেরিতরিচের বর্ণিত হিসাবে গতিশীলভাবে লোড করতে হবে।


5

খুঁজে দেখো ATSApplicationFontsPath

একটি সাধারণ plist এন্ট্রি যা আপনাকে আপনার অ্যাপ্লিকেশন রিসোর্স ফোল্ডারে ফন্ট ফাইল (গুলি) অন্তর্ভুক্ত করতে দেয় এবং তারা আপনার অ্যাপ্লিকেশনটিতে "কেবলমাত্র কাজ করে"।


আপনি কি ডিভাইসে এটি চেষ্টা করেছেন? আমার কোনও আনন্দ নেই, এবং গুগলিং পরামর্শ দেয় যে আইফোন ওএসের জন্য নথিভুক্ত হওয়া সত্ত্বেও এই প্লাস্ট এন্ট্রি আইফোনে সমর্থিত নয়।
এয়ারসোর্স লিমিটেড

1
দুঃখিত, আমি এই মুহুর্তে এটি কেবল একটি OS X অ্যাপে ব্যবহার করছি।
ম্যাট সেফটন

5

আমি এই পৃষ্ঠার কিছু পরামর্শকে এমন কিছুতে সংযুক্ত করেছি যা আইওএস 5-এ আমার জন্য কাজ করে।

প্রথমত, আপনাকে আপনার প্রকল্পে কাস্টম ফন্ট যুক্ত করতে হবে। তারপরে, আপনাকে @iPhoneDev এর পরামর্শ অনুসরণ করতে হবে এবং আপনার তথ্য.পালিস্ট ফাইলটিতে ফন্ট যুক্ত করতে হবে।

আপনি এটি করার পরে, এটি কাজ করে:

UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];

তবে আপনার ফন্টের পোস্টস্ক্রিপ্টের নামটি জানতে হবে। আপনি ফন্টবুক এ থাকাকালীন @ ড্যানিয়েল উডের পরামর্শ অনুসরণ করুন এবং কমান্ড-i টিপুন।

তারপরে, আপনার কাস্টম ফন্টটি উপভোগ করুন।


5

প্রথমে আপনার সংস্থানগুলিতে .odt ফর্ম্যাটে ফন্ট যুক্ত করুন, এক্ষেত্রে আমরা DINEngschriftStd.otf ব্যবহার করব, তারপরে ফন্টটি লেবেলে বরাদ্দ করতে এই কোডটি ব্যবহার করব

[theUILabel setFont:[UIFont fontWithName:@"DINEngschriftStd" size:21]];

আপনার ফন্টটি প্রজেক্টে লোড হয়েছে তা নিশ্চিত করার জন্য কেবল কল করুন

NSLog(@"Available Font Families: %@", [UIFont familyNames]);

.Plist এ আপনাকে অবশ্যই ফন্টটি ঘোষণা করতে হবে। কেবলমাত্র 'অ্যাপ্লিকেশন দ্বারা সরবরাহ করা হরফ' রেকর্ড করুন এবং ফন্টের নাম সহ একটি আইটেম 0 স্ট্রিং যুক্ত করুন (DINEngschriftStd.otf)


5

আইওএস ৩.২ এবং তারপরের জন্য: উপরের কয়েকটি দ্বারা সরবরাহিত পদ্ধতিগুলি ব্যবহার করুন, যা হ'ল:

  1. এক্সকোডের প্রকল্পের রিসোর্স ফোল্ডারে আপনার ফন্ট ফাইল (উদাহরণস্বরূপ, চাক্কডাস্টার.টিটিএফ ) যুক্ত করুন।
  2. Info.plist খুলুন এবং ইউআইএএপিএফফন্টস নামে একটি নতুন কী যুক্ত করুন। এই কীটির প্রকারটি অ্যারে হওয়া উচিত।
  3. এক্সটেনশন (" চালকডাস্টার.টিটিএফ ") সহ এই অ্যারেটিতে আপনার কাস্টম ফন্টের নাম যুক্ত করুন ।
  4. [UIFont fontWithName:@"Real Font Name" size:16]আপনার অ্যাপ্লিকেশন ব্যবহার করুন ।

কিন্তু "রিয়াল ফন্ট নাম" সবসময় আপনি Fontbook মধ্যে দেখতে নয়। সর্বোত্তম উপায় হ'ল আপনার ডিভাইসটি কোন ফন্টগুলি দেখায় এবং সঠিক নামগুলি তা জিজ্ঞাসা করা।

আমি পোস্ট করা ইউআইফন্ট-নাম-গ্র্যাবার ব্যবহার করি: uifont-name-grabber

এক্সকোড প্রজেক্টে আপনি চান ফন্টগুলি কেবল ফেলে দিন, ফাইলটির নামটি তার প্লাস্টে যুক্ত করুন এবং আপনি যে ডিভাইসটি তৈরি করছেন তাতে চালান, এটি UIFont fontWithName:প্রত্যাশার নাম ব্যবহার করে আপনাকে একটি সম্পূর্ণ ফন্ট তালিকা ইমেল করবে ।


5

ভাল সমাধান একটি নতুন সম্পত্তি "যোগ হয় Fonts provided by applicationথেকে" আপনারinfo.plist ফাইলটিতে ।

তারপরে, আপনি আপনার কাস্টম ফন্টটি স্বাভাবিকের মতো ব্যবহার করতে পারেন UIFont


3

আইওএস ৪.১ দিয়ে শুরু করে কাস্টম ফন্টগুলি ব্যবহার করার একটি নতুন উপায় রয়েছে। এটি আপনাকে ফন্টগুলি গতিশীলভাবে লোড করতে দেয়, অ্যাপ্লিকেশন সহ অন্তর্ভুক্ত ফাইলগুলি হতে পারে, ডাউনলোড করা ডেটা বা আপনার কাছে কী রয়েছে। এটি আপনাকে ফন্টগুলি যেমন প্রয়োজন তেমন লোড করতে দেয়, তবে পুরানো পদ্ধতিটি অ্যাপ স্টার্টআপের সময় এগুলি সমস্ত লোড করে দেয়, আপনার অনেক ফন্ট থাকলে খুব বেশি সময় নিতে পারে।

নতুন পদ্ধতিটি আইওএস-ডায়নামিক-ফন্ট-লোডিংয়ে বর্ণনা করা হয়েছে

আপনি CTFontManagerRegisterGraphicsFontআপনার ফন্টের ডেটা দিয়ে এটি একটি বাফার দিয়ে ফাংশনটি ব্যবহার করেন । এটি তখন UIFontপুরানো পদ্ধতির মতোই এবং ওয়েব দর্শনে উপলভ্য । সেই লিঙ্কটি থেকে এখানে নমুনা কোডটি দেওয়া হয়েছে:

NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
    CFStringRef errorDescription = CFErrorCopyDescription(error)
    NSLog(@"Failed to load font: %@", errorDescription);
    CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);

আমি এই কোডটি ব্যবহার করেছি তবে & ত্রুটিটি পেয়ে ফন্টটি লোড করতে ব্যর্থ হয়েছে: ক্রিয়াকলাপটি শেষ করা যায়নি। (com.apple.coretext ত্রুটি 105 - সিজিফন্ট '<সিজিফন্ট (0x14fe7df0): শ্রুতি>') নিবন্ধন করতে পারেনি
হিরেন

ডকুমেন্টেশন অনুসারে, ত্রুটি 105 হল kCTFontManagerErrorAlreadyRegistered, "ফাইলটি ইতিমধ্যে নির্দিষ্ট ক্ষেত্রে নিবন্ধভুক্ত করা হয়েছে।" বিকাশকারী.অ্যাপল
.

3

সুইফট, কোড উপায়: (সুইফট 2.0 এর সাথেও কাজ করে)

আপনার প্রকল্পে প্রয়োজনীয় ফন্টগুলি যুক্ত করুন (চিত্রগুলি যুক্ত করার মতো, কেবল এক্সকোডে টানুন), নিশ্চিত করুন যে তারা আপনার প্রকল্পে লক্ষ্যযুক্ত হয়েছে
এই পদ্ধতিটি যুক্ত করুন এবং কাস্টম ফন্টগুলি লোড করুন (প্রস্তাবিত appDelegate didFinishLaunchingWithOptions)

func loadFont(filePath: String) {

    let fontData = NSData(contentsOfFile: filePath)!

    let dataProvider = CGDataProviderCreateWithCFData(fontData)
    let cgFont = CGFontCreateWithDataProvider(dataProvider)!

    var error: Unmanaged<CFError>?
    if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
        let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue())
        print("Unable to load font: %@", errorDescription, terminator: "")
    }

}

উদাহরণ ব্যবহার করুন:

if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
      loadFont(fontPath)
}

হরফ ব্যবহার করুন:

UIFont(name: "My-Font", size: 16.5)

শুধু ভাবছি, কীভাবে আপনি আসবেন না শুধুমাত্র আপনার তথ্য ফন্টে ফন্ট যুক্ত করবেন না p
স্টিফেন জেসি

2

আপনি রিসোর্স ফোল্ডারের মধ্যে প্রয়োজনীয় "ফন্ট" ফাইল যুক্ত করতে পারেন। তারপরে প্রজেক্টে যানInfo.plist ফাইলে যান এবং KEY "অ্যাপ্লিকেশন দ্বারা সরবরাহিত ফন্টগুলি" এবং "ফন্ট নাম" হিসাবে মানটি ব্যবহার করুন।

তারপরে আপনি পদ্ধতিটি কল করতে পারেন [UIFont fontwithName:@"FONT NAME" size:12];


1

আমি সমস্ত কিছু সম্ভব করে দিয়েছি তবে নতুন ফন্টগুলি প্রদর্শিত হবে না তাই আমি সমাধানটি পেয়েছি:

আপনি যখন ফট ফাইলগুলি টানুন (ওটিএফ বা টিটিএফ) "লক্ষ্যগুলিতে যুক্ত করুন" এর অধীনে চেকবক্সটি চেক করতে ভুলবেন না।

এটি করার পরে আপনার ফন্টটি উপস্থিত হবে এবং সবকিছু ঠিকঠাক হবে।


1

যদিও উপরের কয়েকটি উত্তর সঠিক, আমি ফন্টে সমস্যা থাকা লোকদের জন্য একটি বিস্তারিত ভিজ্যুয়াল টিউটোরিয়াল লিখেছি।

উপরের যে সমাধানগুলি আপনাকে ফন্টটি প্লিস্ট এবং যুক্ত করতে যোগ করতে বলবে

[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];

সঠিক হয়। দয়া করে এখন অন্য কোনও হ্যাকিশ উপায় ব্যবহার করুন। আপনি যদি এখনও হরফের নামগুলি খুঁজে পেতে এবং এগুলি যুক্ত করতে সমস্যায় পড়ে থাকেন তবে এখানে টিউটোরিয়ালটি রয়েছে -

আইওএস অ্যাপ্লিকেশনটিতে কাস্টম ফন্ট ব্যবহার করা হচ্ছে


আমি এই চেষ্টা করেছি। কাজ করতে দেখে মনে হচ্ছে তবে আমার ফন্টটি খুব ছোট, আমি এটি আকার নির্ধারণ করি না কেন। এটির মূল্যের জন্য, আমি নিখরচায়
অরি স্বর্ণ

অন্য যে কোনও কাস্টম ফন্টের সাথে এটি ব্যবহার করে দেখুন এবং যদি সমস্যাটি অব্যাহত থাকে তবে আমাকে জানান। যদি এটি সেভাবে কাজ করে তবে আপনার ফন্টে সমস্যা আছে।
ভারত গুলতি

1

হ্যাঁ আপনি আপনার অ্যাপ্লিকেশনটিতে কাস্টম ফন্ট ব্যবহার করতে পারেন

সেখানে ধাপে ধাপে অনুসরণ:

সহায়ক প্রকল্পে আপনার প্রকল্পে আপনার কাস্টম ফন্ট ফাইল যুক্ত করুন

আপনার আইআইএএপিএফফন্টস নামে একটি তথ্য যুক্ত করুন।

এই কীটি একটি অ্যারে করুন

আপনার প্রতিটি ফন্টের জন্য, ইউআইএএপিএফএফন্টস অ্যারেতে আইটেম হিসাবে আপনার ফন্ট ফাইলের পুরো নাম (এক্সটেনশন সহ) লিখুন

তথ্য সংরক্ষণ করুন.পরেলিস্ট এখন আপনার অ্যাপ্লিকেশনটিতে আপনি কেবলমাত্র [ইউআইফোন্ট ফন্টউইথনাম: @ "আপনার কাস্টম ফন্টের নাম" আকার: ২০] কল করতে পারেন যদি আপনার ইউআইএলবেলগুলি প্রয়োগ করার পরে কাস্টম ফন্টটি প্রয়োগ করার পরে এটি সঠিকভাবে না পেয়ে থাকে তবে ডাবল ক্লিক করুন কাস্টম ফন্টে, এবং সাবধানতার সাথে দেখুন শীর্ষ পাশের ফন্টের নাম আসছে এবং এই ফন্টটি অনুলিপি করুন, এখানে পেস্ট করুন [ইউআইফোন্ট ফন্টউইননাম: @ "এখানে আপনার কাস্টম ফন্টের নাম" আকার: 20]

আমি আশা করি আপনি সঠিক উত্তর পাবেন


1

হ্যাঁ আপনি আপনার অ্যাপ্লিকেশনটিতে কাস্টম ফন্ট ব্যবহার করতে পারেন

সেখানে ধাপে ধাপে অনুসরণ:

  • সহায়ক প্রকল্পে আপনার প্রকল্পে আপনার কাস্টম ফন্ট ফাইল যুক্ত করুন
  • আপনার Info.plistফাইলটিতে একটি চাবি যুক্ত করুন যা ইউআইএএপিএফফন্টস।
  • এই কীটি একটি অ্যারে করুন
  • আপনার প্রতিটি ফন্টের জন্য, ইউআইএএপিএফএফন্টস অ্যারেতে আইটেম হিসাবে আপনার ফন্ট ফাইলের পুরো নাম (এক্সটেনশন সহ) লিখুন
  • Info.plist আপনার অ্যাপ্লিকেশনে এখনই সংরক্ষণ করুন আপনি নিজের [UIFont fontWithName:@"your Custom font Name" size:20]সাথে কাস্টম ফন্টটি ব্যবহার করতে কল করতে পারেনUILabels

এটি প্রয়োগ করার পরে যদি আপনার সঠিক ফন্ট না পাওয়া যায় তবে আপনি কাস্টম ফন্টটিতে ডাবল ক্লিক করুন এবং সাবধানতার সাথে দেখুন শীর্ষ পাশের ফন্টের নামটি আসছে এবং এই ফন্টটি অনুলিপি করুন, পেস্ট করুন, এখানে [UIFont fontWithName:@" here past your Custom font Name" size:20] আমি আশা করি আপনি সঠিক উত্তর পাবেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.