আইওএস 7.0.3 এ "হেলভেটিকানিউ-ইটালিক" এর কি হয়েছিল?


100

আমার আইপড টাচটি কেবলমাত্র আইওএস 7.0.3 এ আপগ্রেড করা হয়েছে এবং "হেলভেটিকানিউ-ইটালিক" অদৃশ্য হয়ে গেছে বলে মনে হচ্ছে। আমি যখন ফোনে জিজ্ঞাসা করি তখন:

[UIFont fontNamesForFamilyName:@"Helvetica Neue"]

আমি নিম্নলিখিত ফন্টনামগুলি পেয়েছি (13):

HelveticaNeue-BoldItalic,
HelveticaNeue-Light,
HelveticaNeue-UltraLightItalic,
HelveticaNeue-CondensedBold,
HelveticaNeue-MediumItalic,
HelveticaNeue-Thin,
HelveticaNeue-Medium,
HelveticaNeue-ThinItalic,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-Bold,
HelveticaNeue,
HelveticaNeue-CondensedBlack

আমি যখন সিমুলেটরটিতে একই ক্যোয়ারী চালিত করি তখন আমি পাই (14):

HelveticaNeue-BoldItalic,
HelveticaNeue-Light,
**HelveticaNeue-Italic,**
HelveticaNeue-UltraLightItalic,
HelveticaNeue-CondensedBold,
HelveticaNeue-MediumItalic,
HelveticaNeue-Thin,
HelveticaNeue-Medium,
HelveticaNeue-Thin_Italic,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-Bold,
HelveticaNeue,
HelveticaNeue-CondensedBlack

অন্য কেউ এই দেখতে পাচ্ছেন?

---- নতুন তথ্য ----

আমি ডাব্লুডাব্লুডিসি 2013 ভিডিওটিতে "টেক্সট কিট সহ ফন্ট ব্যবহার করে" ফিরে গিয়েছিলাম এবং আকর্ষণীয় অংশটি 12:22 থেকে শুরু হবে। উপস্থাপক উদাহরণ হিসাবে ওএস এক্সে "মেটাফন্টস" সম্পর্কে কথা বলেন। তিনি যা বলেন তা হ'ল কলগুলির আওতায় থাকা ফন্টের মতো:

+ (NSFont *)messageFontOfSize:(CGFloat)fontSize

সংস্করণে বা এমনকি বিভিন্ন ব্যবহারের ক্ষেত্রে একই অন্তর্নিহিত ফন্টটি ফেরত দেওয়ার গ্যারান্টিযুক্ত নয়। তার উদাহরণ লুসিডা গ্র্যান্ডে। "হেলভেটিকানিউ-ইটালিক" ব্যবহার করে সংস্করণ থেকে অন্য সংস্করণে যেতে পারে বলে তিনি মনে করছেন বলে মনে হয় না।

সুতরাং আমি আইওএস an এ একটি পরীক্ষা তৈরি করেছি I আমি নিম্নলিখিত কোডটি দিয়ে আমার ফন্টটি তৈরি করেছি:

UIFontDescriptor *fontDescriptor = [UIFontDescriptor fontDescriptorWithName:@"Helvetica Neue" size:16.0];
UIFontDescriptor *symbolicFontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic];

UIFont *fontWithDescriptor = [UIFont fontWithDescriptor:symbolicFontDescriptor size:16.0];

আমি ফন্টউইটডেস্কিটারের জন্য একটি বৈধ ইউআইএফন্ট ফিরে পেয়েছি এবং যখন আমি ফন্টনামের জন্য ফন্টটি অনুসন্ধান করেছি এর সাথে:

[fontWithDescriptor fontName]

আমি ফিরে পেয়েছি ...

HelveticaNeue-Italic

চিত্রে যান???

সুতরাং 7.0.3 এর একটি সম্ভাব্য উত্তরটি উপরের কোড বলে মনে হচ্ছে।

---- আরও ত্বক ----

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

    UIFontDescriptor *fontDescriptor = [[UIFontDescriptor alloc] init];

    UIFontDescriptor *fontDescriptorForHelveticaNeue = [fontDescriptor fontDescriptorWithFamily:@"Helvetica Neue"];
    UIFontDescriptor *symbolicFontDescriptor = [fontDescriptorForHelveticaNeue fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic];

    textFont = [UIFont fontWithDescriptor:symbolicFontDescriptor size:textFontPointSize];

এটি সমস্ত সঠিক কাজ করে বলে মনে হচ্ছে। আমি অন্য ফন্ট পরিবারের সাথে পূর্ববর্তী পদ্ধতির চেষ্টা করেছি এবং মনে হয়েছিল এটি একটি ফন্টনাম এবং ফন্টফ্যামিলির সাথে বিভ্রান্ত হয়েছে। আশাকরি এটা সাহায্য করবে!


আমি এটাও দেখেছি। কী হয়েছে জানি না, তবে এটি বেশ একটা রিগ্রেশন।
আইপোডিশিমা

মজার বিষয় হল, আইওএস 7.0.3 এর পৃষ্ঠাগুলিতে হেলভেটিকা ​​নিউ ইটালিক দেখায়: i.stack.imgur.com/xpJKl.png
লিও নাটান

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

এটি আইওএস 7.0.4
s.ka

উত্তর:


31

এটি একটি অ্যাপল বাগ। এটি আইওএস 7.0.3 এ চালু হয়েছিল এবং আইওএস 7.0.4 হিসাবে এখনও ঠিক করা হয়নি। এটি আইওএস 7.1 এর বিকাশকারী পূর্বরূপে স্থির হয়েছে বলে মনে হচ্ছে। সমস্যাটি সমাধানের জন্য এখানে কোড (অ্যাপ ফোরাম দ্বারা দেব ফোরামগুলিতে সরবরাহ করা) রয়েছে:

#import <CoreText/CoreText.h>

CGFloat size = 14;
UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Italic" size:size];
if (font == nil && ([UIFontDescriptor class] != nil)) {
    font = (__bridge_transfer UIFont*)CTFontCreateWithName(CFSTR("HelveticaNeue-Italic"), size, NULL);
}

এটিও লক্ষণীয় যে এক্সকোডের বর্তমান সংস্করণে (5.0.1 (5A2053)) এই ফন্টটি ইন্টারফেস বিল্ডারে ফন্ট ড্রপ ডাউন তালিকার বিকল্প হিসাবে তালিকাভুক্ত নয়। সুতরাং আপনি যদি আগে এই ফন্টের সাথে একটি লেবেল কনফিগার করেছেন তবে আপনি লক্ষ্য করবেন যে ইউআই বিভ্রান্ত হয়ে গেছে এবং লেবেলটি রানটাইমের সময় কিছু অন্য ফন্ট এবং আকার নির্ধারিত হবে (নীচে ইউআই স্ক্রিনক্যাপ দেখুন)। স্টোরিবোর্ডে / xibs এ কনফিগার করা লেবেলের জন্য আপনার কোডটিতে ফন্টটি পুনরায় সেট করতে হবে।

রেফারেন্সের জন্য এখানে দেব ফোরামে ইস্যুটির আলোচনা রয়েছে।

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


আপনি বলছেন যে আপনি আপনার সমস্ত ব্যবহার অন্যরকম জায়গায় প্রতিস্থাপন করেছেন। আপনি এটি দিয়ে কি প্রতিস্থাপন করেছেন? আমরা লক্ষ্য করেছি যে আপনি যদি এটি XIB ফাইলে হেলভেটিকানিউ-মিডিয়ামআইটালিকের সাথে প্রতিস্থাপন করেন তবে আমরা iOS 6 এবং এর আগের ক্ষেত্রে ভুল ফলাফল পেয়েছি কারণ ফন্টটি আইওএস 7-এ প্রবর্তিত বলে মনে হয়
জিবিজেন

আমি এটি হেলভেটিকানিউ-লাইটআইটালিকের সাথে প্রতিস্থাপন করেছি। এটি কখন চালু হয়েছিল তা নিশ্চিত নয়। আমার অ্যাপ্লিকেশনটি
আইওএস 7+

7

এটি আইওএস 7.0.3 এ একটি বাগ।

আপনি যদি স্পষ্টরূপে হেলভেটিকানিউ-ইটালিক ব্যবহার করছেন তবে আপনি এই কার্যকারিতাটি ব্যবহার করে এটি তৈরি করতে পারেন:

UIFont* font = (__bridge_transfer UIFont*)CTFontCreateWithName(CFSTR("HelveticaNeue-Italic"), fontSize, NULL);

তবে নোট করুন, তবে এই workaround শুধুমাত্র iOS 7 এ কাজ করবে ; এটি আইওএস 6 -তে ডিপ্লোয়েবল নয় (কারণ CTFontRefএবং UIFontএটি আইওএস 6 এ টোল-ফ্রি ব্রিজড ছিল না)। তবে, আইওএস 6 এ আপনি কেবলমাত্র আপনার নিয়মিত ফন্টের লুকিং কোডটি ব্যবহার করতে পারেন।


4

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


4
এফওয়াইআই: আমি কেবল পরীক্ষা করেছি এবং বাগ এখনও আইওএস 7.0.4 এ উপস্থিত রয়েছে।
ডেভিড লারি

3

আপনি যদি গতিশীলভাবে ইটালিক ফন্ট অ্যাক্সেস করে থাকেন তবে নাম [UIFont fontWithName:@"HelveticaNeue-Italic" size:15.0f] ব্যবহার করে ফন্টটি অ্যাক্সেস না করে [UIFont italicSystemFontOfSize:15.0f]এটি আমার পক্ষে ভাল কাজ করছে।


এটি সম্ভবত এই ইস্যুটির সবচেয়ে পরিষ্কার কাজ। যদি আইওএস 6 সমর্থনের প্রয়োজন হয় তবে আপনি fontWithName:size:প্রথমে চালানোর চেষ্টা করতে পারেন এবং ফলাফল যদি হয় তবে nilচালান italicSystemFontOfSize:যা সর্বদা কিছু ফিরিয়ে দেয় এবং কমপক্ষে ক্রাশ এড়ানো উচিত।
সল্টনিটস

2

আমি বর্তমানে সেশনটি খুঁজে পাই না তবে তারা এমন কিছু বলেছিল যা আপনি iOS7 এ আর ফন্ট উপলব্ধ হওয়ার উপর নির্ভর করতে পারবেন না। এমনকি আপনার অ্যাপ্লিকেশনটির জীবদ্দশায় তারা পরিবর্তন করতে পারে। যার মূলত অর্থ: আপনি যখন আপনার অ্যাপ্লিকেশনটিতে ফন্টগুলি নির্দিষ্ট করেন, আপনি স্ক্রু হয়ে যাবেন, পরিবর্তে ফন্ট বর্ণনাকারী বা পছন্দসই ফন্টগুলি ব্যবহার করুন!


4
আমার কাছে পাওয়া সবচেয়ে কাছের ম্যাচটি হচ্ছে asciiwwdc.com/2013/sessions/223 , তবে দেখে মনে হচ্ছে তারা সিস্টেম-সরবরাহিত ফন্ট নয়, ডাউনলোডযোগ্য ফন্টের উল্লেখ করছেন।
হিলটন ক্যাম্পবেল

উপরের নতুন তথ্য দেখুন। আমি মনে করি উপস্থাপক যা বলছেন তা হ'ল আপনি "মেটাফন্টস" ম্যাপিংকে একই সংস্করণ বা এমনকি ব্যবহারগুলি জুড়ে একই অন্তর্নিহিত ফন্টগুলিতে গণনা করতে পারবেন না। আমি মনে করি না যে তিনি এই কথাটি বলে যাচ্ছেন এমনকী এমন একটি সম্ভাবনাও রয়েছে যে "হেলভেটিকানিউ-ইটালিক" এর মতো কোনও কিছু চলে যেতে পারে।
স্কট সার্নিকোভস্কি

1

আমি আর একটি সমাধান পেয়েছি যা কাজ করে বলে মনে হচ্ছে। আমি একটি কল লগ আউট

[[UIFont italicSystemFontOfSize:12.0] fontName]

প্রকৃত সিস্টেমের ইটালিক ফন্টটি কী ব্যবহৃত হচ্ছে তা দেখার জন্য এবং এটি ফিরে এসেছে ".হেলভেটিকানিউইন্টারফেস-ইটালিক এম 3"। একটি সহজ পরীক্ষা দেখায় যে ব্যবহার করে

[UIFont fontWithName:@".HelveticaNeueInterface-ItalicM3" size:12.0]

কাজ! তাদের দৃশ্যমানভাবে তুলনা করলে উপরের কলটিতে ফন্টটি ফন্টটি আসল 'হেলভেটিকানিউ-ইটালিক' ফন্টের মতো দেখা যায়।

এই সমস্যাটি অবশ্যই একটি বাগ ... এক্সকোড v.5.0 এ সবকিছুই ঠিকঠাক কাজ করেছে, তবে 5.0.1 এ আপগ্রেড করার সাথে সাথেই এই সমস্যাটি উপস্থিত হতে শুরু করে। অ্যাপল যতটা লক্ষ করেছিলাম তাতে আমি একটি বাগ ফাইল করেছি। ততক্ষণে এই সমাধানটি কাজ করছে বলে মনে হচ্ছে ...


1

অ্যাপলের সাথে আমি যে বাগ রিপোর্টটি দায়ের করেছি সেটিকে "সদৃশ হিসাবে বন্ধ" হিসাবে চিহ্নিত করা হয়েছে। আমি আশাবাদী এর অর্থ তারা এটিকে একটি বাগ হিসাবে বিবেচনা করবেন। তবে, আইওএস 7.0.4 বাগটি ঠিক করে না।


4
আমি একই প্রতিক্রিয়া পেয়েছি। আশা করি তারা এটিকে ঠিক করেছেন।
স্কট সার্নিকোভস্কি


0

আমার একই ক্রাশ হয়েছে যা কেবলমাত্র আইওএস 7.0.3 এবং 7.0.4 এ ক্র্যাশ করতে ব্যবহৃত হয়েছিল এবং অন্য সমস্ত সংস্করণে পুরোপুরি কাজ করে। এত তদন্তের পরে, আমি জানতে পেরেছিলাম যে @ "হেলভেটিকানিউ-ইটালিক" আইওএস 7.0.3 এবং 7.0.4 সংস্করণে পাওয়া যায় না, যাতে আমি সেই সংস্করণগুলিতে ক্র্যাশ পেতে পারি।

আমি নীচের কোড সহ সমস্যাটি স্থির করেছি, এটি কোনও অভাবগ্রস্থকে সহায়ক হতে পারে।

self.headerFont = [UIFont fontWithName:@"HelveticaNeue-Italic" size:16.0f];
if (self.headerFont == nil) {
    self.headerFont = [UIFont fontWithName:@"HelveticaNeue" size:16.0f];
}

ক্র্যাশ লগ হ'ল:

[__NSCFConstantString pointSize]: unrecognized selector sent to instance 

-1

যেহেতু ইউআইউইউভিউ ভিউতে হেলভেটিকানিউ ইটালিক সহায়তা সম্পর্কে কেউ কিছু উল্লেখ করেনি, তাই আমি ভেবেছিলাম যে আমি আমার অনুসন্ধানগুলি ভাগ করব।

.0.০..6 হিসাবে, নিয়মিত ইটালিকটি এখনও ইউআইউইভিউভিউতে অনুপস্থিত এবং একই পরিবারে আল্ট্রাਲਾਈাইটআইটালিকের কাছে ফিরে আসে। নিয়মিত ওজন-অ-ইতালিক হেলভেটিকা ​​নিউ টেক্সটটি খুব হালকা হওয়ার পরে যখন এটি কিছুটা অদ্ভুত লাগে।

আমার কাজটি হ'ল হেলভেটিকানিউয়ের পরিবর্তে সাধারণ হেলভেটিকা ​​ব্যবহার করা ছিল তবে কেবল তাতালিকের জন্য for সুতরাং আপনার যদি সিএসএস থাকে যা দেখতে এরকম দেখাচ্ছে:

.myCssClass {
    font-family:HelveticaNeue;
    /* etc, etc */
}

... আপনি ওভাররাইডে আরও দুটি ক্লাস যুক্ত করবেন <i>এবং <em>:

.myCssClass i  { font-family:Helvetica; }
.myCssClass em { font-family:Helvetica; }

নিয়মিত হেলভেটিকা ​​ইটালিক ফন্টটি দেখতে ভাল লাগে এবং আমি মনে করি না যে কেউ খেয়াল করবে যে এটি হেলভেটিকানিউ নয়।

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