স্টোরিবোর্ডে কাস্টম ফন্টগুলির সাথে গুণিত স্ট্রিং সঠিকভাবে লোড হয় না


100

আমরা আমাদের প্রকল্পে কাস্টম ফন্ট ব্যবহার করছি। এটি এক্সকোড ৫ এ ভালভাবে কাজ করে X এক্সকোড In এ, এটি কোডটিতে স্পষ্ট পাঠ্য, গুণিত স্ট্রিংয়ে কাজ করে। স্টোরিবোর্ডে সেট করা সেই বৈশিষ্ট্যযুক্ত স্ট্রিংগুলি সিমুলেটর বা ডিভাইসে চলাকালীন সমস্ত হেলভেটিকায় ফিরে আসে, যদিও স্টোরিবোর্ডে এগুলি ঠিক দেখাচ্ছে।

আমি নিশ্চিত নই যে এটি এক্সকোড 6 বা আইওএস 8 এসডিকে একটি বাগ, বা কাস্টম ফন্টগুলি ব্যবহারের উপায়টি এক্সকোড 6 / আইওএস 8 এ পরিবর্তন হয়েছে?


এখানেও একই সমস্যা। কি হবে জানতে চাই।
হেডটাইটি

4
আপাতত, আমরা GLMarkdownLabel নামে একটি কাস্টম UILabel তৈরি করেছি এবং আইবিআইস্পেসটেবলের সাথে কিছু সম্পত্তি রফতানি করেছি, তারপরে স্টোরিবোর্ডে মার্কডাউন স্ট্রিং সেট করেছি, এবং নিব থেকে জেগে যখন চিহ্নিত ডাউন স্ট্রিংগুলিকে ফিরিয়ে আনা বৈশিষ্ট্যযুক্ত স্ট্রিংগুলিতে অনুবাদ করি।
অ্যালেন সুস

এটি এখন একটি দীর্ঘমেয়াদী সমাধান, আশা করি অ্যাপল এই বাগটি এক্সকোডের পরবর্তী সংস্করণে ঠিক করবে।
অ্যালেন সুস

হ্যাঁ, এ জাতীয় ক্রাফ্ট। যদিও এটি কোনও বিচ্ছিন্ন সমস্যা নয় তা আমাদের জানানোর জন্য ধন্যবাদ। রাডার আছে?
obeattie

4
আমাদের কাজের ভিত্তিতে অবশেষে আমাদের বিশিষ্ট লেবেলের জন্য আইবিসিস্টমফন্টগুলি ব্যবহার করতে ফিরে যাচ্ছিল
ইয়োনিক্স

উত্তর:


30

আমার জন্য ঠিক করা ছিল একটি IBDesignableক্লাস ব্যবহার করা :

import UIKit

@IBDesignable class TIFAttributedLabel: UILabel {

    @IBInspectable var fontSize: CGFloat = 13.0

    @IBInspectable var fontFamily: String = "DIN Light"

    override func awakeFromNib() {
        var attrString = NSMutableAttributedString(attributedString: self.attributedText)
        attrString.addAttribute(NSFontAttributeName, value: UIFont(name: self.fontFamily, size: self.fontSize)!, range: NSMakeRange(0, attrString.length))
        self.attributedText = attrString
    }
}

ইন্টারফেস বিল্ডারে আপনাকে এটি প্রদান করা:

গুণযুক্ত স্ট্রিং সহ ইন্টারফেস বিল্ডার কাস্টম ফন্ট

আপনি যেমনটি করেন ঠিক তেমনই আপনার অ্যাট্রিবিউটস্ট্রিং সেটআপ করতে পারেন, তবে আপনাকে নতুন উপলভ্য বৈশিষ্ট্যে আবার আপনার ফন্টসাইজ এবং ফন্টফ্যামিলি সেট করতে হবে।

ইন্টারফেস বিল্ডার ডিফল্টরূপে কাস্টম ফন্টের সাথে কাজ করছে, ফলস্বরূপ আপনি যা যা দেখবেন তা ফলস্বরূপ অ্যাপ্লিকেশনগুলি তৈরি করার সময় পছন্দ করি।

বিঃদ্রঃ

আমি কেবল প্লেইন সংস্করণের পরিবর্তে এটি ব্যবহার করার কারণটি হ'ল আমি লাইনপেসিংয়ের মতো বৈশিষ্ট্যযুক্ত লেবেলে বৈশিষ্ট্যগুলি সেট করছি যা প্লেইন শৈলী ব্যবহার করার সময় পাওয়া যায় না।


4
আপনার সমাধানটি কেবল একটি ফন্টের পরিবার এবং আকারকে একটি লেবেলের জন্য সমর্থন করে, তবে কেন কেবল পরিবর্তে সরল পাঠ্য ব্যবহার করা হচ্ছে না?
অ্যালেন হু

একইভাবে, আমরা @IBInspectableঅস্থায়ীভাবে ফন্ট এবং আকারের পরিবর্তে বৈশিষ্ট্যগুলি ব্যবহার করছি । আমাদের একটি markdownTextসম্পত্তি আছে, কারণ বেশিরভাগ সময় আমরা সাহসী বা আন্ডারলাইনযুক্ত পাঠ্যের জন্য বিশিষ্ট স্ট্রিং ব্যবহার করি। তারপরে প্লেইন পাঠ্যের জন্য সেট ফন্ট এবং আকারের তথ্য দিয়ে চিহ্নিত করা স্ট্রিংয়ে মার্কডাউন পাঠ্যকে পার্স করুন।
অ্যালেন হু

অ্যালেনহসু, আপনি ঠিক বলেছেন এটি উল্লেখ করেনি, তবে আমি আমার লেবেলের জন্য বিশিষ্ট লাইনস্পেস ব্যবহার করছি। অফকোর্স, অন্যথায় আপনি কেবল সাধারণ স্টাইল ব্যবহার করবেন :)
এন্টোইন

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

4
আমি লেখার কোনও অংশকে সাহসী করতে চাইলে এটি কাজ করবে না
xtrinch

31

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


17
এটি যখন Xcode কে কাস্টম ফন্ট নির্বাচন করতে দেবে, এটি আসলে কাজ করে না। রানটাইমের সময় ফন্টটি আপনার প্রত্যাশা মতো ব্যবহার করা হবে না।
ড্যানিয়েল

দুর্ভাগ্যক্রমে আমি কোনও কাজের সাথে আসতে পারিনি। অ্যাপলের সাথে একটি বাগ লগ করা আমার পক্ষে সবচেয়ে ভাল ছিল।
ড্যানিয়েল

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

হ্যাঁ. এটি আমাকে একই সমস্যা সমাধানে সহায়তা করে। আমি যখন কাস্টম ফন্ট ফন্ট বইয়ের জিনিসগুলিতে যুক্ত করি তখন মোহন মতো কাজ করে।
সুশান্ত জগতাপ

4
যদিও এই সমাধানটি কিছু ক্ষেত্রে কাজ করে, একই ফন্ট পরিবারের সাথে আমি একই প্রকল্পে @ ড্যানিয়েল হিসাবে একই সমস্যার মুখোমুখি হয়েছি। এক্সকোডের এই সমস্যাটি বাছাই করা দরকার।
dey.shin

17

আপনি ফন্ট বইতে কাস্টম ফন্টগুলি যুক্ত করতে পারেন।

পদক্ষেপ 1 : পরিচালনা ফন্টে ক্লিক করুন। এটি ফন্ট বই খুলবে।

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

পদক্ষেপ 2 : প্লাসে ক্লিক করুন এবং আপনার ফন্টগুলি যুক্ত করুন।

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

পরের বার যখন আপনি নতুন পাঠানো ফন্টের সাথে বিশিষ্ট পাঠ্য সহ ফন্টটিতে ক্লিক করবেন তখন তালিকাতে প্রদর্শিত হবে। তবে নিশ্চিত হয়ে নিন যে আপনার কাস্টম ফন্টটি info.plist এবং বান্ডিল সংস্থানগুলিতে যুক্ত হয়েছে added


এটি স্টোরিবোর্ডে কাজ করে তবে এটি চালানোর পরে বিন্যাসটি প্রদর্শন করে না
ভ্যান

4
@ ভ্যান ফর্ম্যাটিং? আপনি আমাকে আরও বলতে পারেন? কখন কাজ হচ্ছে না?
মাহবুলেশ্বর হেগডে

আমাকে পাঠ্যটি সেট করতে হবে যা rgualr এবং গা bold় ফন্টের মিশ্রণ match আমি উপরের সমাধানটি ব্যবহার করেছি, সুতরাং এটি স্টোরিবোর্ডে কাজ করেছে তবে আমি যখন অ্যাপটি চালাচ্ছি তখন লেবেলটি ফন্টটি প্রয়োগ করার পরিবর্তে এটি সিস্টেমের ফন্টটি দেখায় না
ভ্যান

আপনি কি info.plist এ আপনার কাস্টম ফন্টগুলি যুক্ত করেছেন? এরপরে সবেমাত্র সমস্ত ফন্ট পরিবার মুদ্রণ করুন
মাহবালেশ্বর হেগদে

4
হ্যাঁ. আমি সরল পাঠ্যের ক্ষেত্রে সমস্ত অ্যাপ্লিকেশনটিতে কাস্টম ফন্ট সেট করতে সক্ষম হয়েছি, আমাকে
ভ্যান

5

এই থ্রেডকে ধন্যবাদ, আমি এই সমাধানে এসেছি:

private let fontMapping = [
    "HelveticaNeue-Medium": "ITCAvantGardePro-Md",
    "HelveticaNeue": "ITCAvantGardePro-Bk",
    "HelveticaNeue-Bold": "ITCAvantGardePro-Demi",
]

func switchFontFamily(string: NSAttributedString) -> NSAttributedString {
    var result = NSMutableAttributedString(attributedString: string)
    string.enumerateAttribute(NSFontAttributeName, inRange: NSRange(location: 0, length: string.length), options: nil) { (font, range, _) in
        if let font = font as? UIFont {
            result.removeAttribute(NSFontAttributeName, range: range)
            result.addAttribute(NSFontAttributeName, value: UIFont(name: fontMapping[font.fontName]!, size: font.pointSize)!, range: range)
        }
    }
    return result
}

4
ভাল যুক্তি. এটি সত্যিই অবিশ্বাস্য এটি অ্যাপলে এটি ভেঙে গেছে। অবাক করা।
ফ্যাটি

4

আমার সমাধানটি চারপাশের একটি কাজ। আসল সমাধান হ'ল অ্যাপল ইন্টারফেস বিল্ডার ঠিক করা।

এটির সাহায্যে আপনি সিস্টেম ফন্ট ব্যবহার করে ইন্টারফেস বিল্ডারে সমস্ত গা bold় এবং তির্যক পাঠ্য চিহ্নিত করতে পারেন, তারপরে রানটাইমে আপনার কাস্টম ফন্টটি রেন্ডার করুন। সব ক্ষেত্রে অনুকূল হতে পারে না।

 NSMutableAttributedString* ApplyCustomFont(NSAttributedString *attributedText,
                     UIFont* boldFont,
                     UIFont* italicFont,
                     UIFont* boldItalicFont,
                     UIFont* regularFont)
{

    NSMutableAttributedString *attrib = [[NSMutableAttributedString alloc] initWithAttributedString:attributedText];
    [attrib beginEditing];
    [attrib enumerateAttribute:NSFontAttributeName inRange:NSMakeRange(0, attrib.length) options:0
                    usingBlock:^(id value, NSRange range, BOOL *stop)
    {
        if (value)
        {
            UIFont *oldFont = (UIFont *)value;
            NSLog(@"%@",oldFont.fontName);

            [attrib removeAttribute:NSFontAttributeName range:range];

            if([oldFont.fontName rangeOfString:@"BoldItalic"].location != NSNotFound && boldItalicFont != nil)
                [attrib addAttribute:NSFontAttributeName value:boldItalicFont range:range];
            else if([oldFont.fontName rangeOfString:@"Italic"].location != NSNotFound && italicFont != nil)
                [attrib addAttribute:NSFontAttributeName value:italicFont range:range];
            else if([oldFont.fontName rangeOfString:@"Bold"].location != NSNotFound && boldFont != nil)
                [attrib addAttribute:NSFontAttributeName value:boldFont range:range];
            else if(regularFont != nil)
                [attrib addAttribute:NSFontAttributeName value:regularFont range:range];
        }
    }];
    [attrib endEditing];

    return attrib;
}

এই পোস্ট দ্বারা অনুপ্রাণিত


4

আমি এই বাগের সাথে লড়াই করেছি: ইউআইএলবেল কাস্টম ফন্টের সাহায্যে আইবিতে সঠিকভাবে প্রদর্শন করে তবে ডিভাইস বা সিমুলেটরটিতে সঠিকভাবে প্রদর্শন করে না (ফন্টটি প্রকল্পের অন্তর্ভুক্ত এবং সরল ইউআইএলবেলে ব্যবহৃত হয়)।

অবশেষে (ম্যাক) অ্যাপ স্টোরটিতে অ্যাট্রিবিউটেড স্ট্রিং ক্রিয়েটারকে পাওয়া গেল। আপনার অ্যাপে উপযুক্ত স্থানে স্থাপনের জন্য কোড উত্পন্ন করে। কল্পনাপ্রসূত। আমি স্রষ্টা নই, কেবল একটি সুখী ব্যবহারকারী।


3

একই সমস্যাটি পেয়েছে: স্টোরিবোর্ডে টেক্সটভিউয়ের জন্য বৈশিষ্ট্যযুক্ত ফন্ট সেট এক্সকোড 6.1 এবং আইওএস 8 এসডিকে দিয়ে রান টাইমে কাজ করে না।

এইভাবে আমি এই সমস্যাটি সমাধান করেছি, এটি আপনার পক্ষে কার্যকর হতে পারে:

  1. আপনার পাঠ্যদর্শনটির বিশিষ্ট পরিদর্শকটি খুলুন, পাঠ্যটিকে "সরল" তে পরিবর্তন করুন

  2. "ডাব্লুসি এইচআর" মুছতে ক্রস ক্লিক করুন (নীচে লাল)

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

  3. পাঠ্যটিকে "বৈশিষ্ট্যযুক্ত" এ পরিবর্তন করুন এবং তারপরে আপনি আপনার পাঠ্যের জন্য ফন্ট এবং আকার সেট করতে পারেন can

  4. এটি কাজ করে কিনা তা পরীক্ষা করতে দৌড়াও

মনে হচ্ছে ডিফল্টরূপে কোন যে wC hRসম্পত্তি সেট, তন্ন তন্ন UILabelনা UITextView
অ্যালেন হু

এক্সকোড by দ্বারা, আপনি কি "নিয়মিত প্রস্থ | যে কোনও উচ্চতা", "কমপ্যাক্ট প্রস্থ | নিয়মিত উচ্চতা" এর মতো অন্য ধরণের উচ্চতা-প্রস্থ স্থাপন করেছিলেন? কারণ আমি এক্সকোড 5 এ একটি প্রকল্প বিকাশ করেছি এবং এর বৈশিষ্ট্যযুক্ত পাঠ্যদর্শনটি আইওএস 8 এসডিকে নিয়েও কাজ করছে, আমি সেখানে সেটিংস পরীক্ষা করেছি এবং একমাত্র পার্থক্যটি দেখতে পেয়েছি এক্সকোড 6 ব্যবহারকারীদের বিভিন্ন আকারের ডিভাইসের জন্য ফন্ট সেট করতে দেয় যদি আপনি পাঠ্যটি সেট করেন "সরল"। এই নতুন কনফিগারেশনটি "বিশিষ্ট" তে পাঠ্য সেট করার কারণ হতে পারে তবে ফন্টটি কাজ করছে না।
Zhihao ইয়াং

4
আপনি কাস্টম ফন্ট ব্যবহার করছেন? আমার অর্থ স্বয়ং এমবেড হওয়াগুলি, সিস্টেম ফন্ট নয়।
অ্যালেন হু

আহা, আমি ভেবেছিলাম "কাস্টম" ফন্টগুলি আপনি উল্লেখ করেছেন এটি Xcode দ্বারা প্রদত্ত অফারগুলি হ'ল এতে "সিস্টেম" ফন্ট রয়েছে font
জিহাও ইয়াং

এটি আমার পক্ষে কাজ করে না। এটি সাধারণ স্ট্রিংয়ের জন্য কাজ করে তবে গুণিত স্ট্রিংয়ের জন্য নয়।
প্রতীক সোমাইয়া

2

একই সমস্যাটি পেয়েছে: স্টোরিবোর্ডে ইউআইএলবেলের জন্য অ্যাট্রিবিউট ফন্ট রান সময়টিতে কাজ করে নি। এই ইউআইএফন্ট + আইবিএসটিএমএফএনটি.এম ব্যবহার করে আমার জন্য কাজ করে https://github.com/deni2s/IBCustomFouts


2

এটি চেষ্টা করবে এটি চেষ্টা করুন

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

গুণযুক্ত পাঠ্যটিতে একই আকারের ফন্ট রয়েছে তাই এটি 1 শব্দের আকার পরিবর্তন করুন জিনিসটি আমার সাথে কাজ করে।

এটি হতে পারে এটি এক্সকোড বাগ তবে এই কৌশলটি আমার পক্ষে কাজ করে।


1

একই সমস্যা.

সমাধান হয়েছে: টেক্সটভিউতে কেবল নির্বাচনযোগ্য পরীক্ষা করুন। এটি ছাড়া আমার স্ট্যান্ডার্ড সিস্টেম ফন্ট রয়েছে।



1

@ হ্যামিডিপ্টব সলিউশন কাজ করে, ফন্টের সঠিক নামটি নিশ্চিত করে নিন (একবার আপনি এটি ফন্ট বইয়ের সাথে যুক্ত করেছেন)

  • ফন্ট বুক অ্যাপ্লিকেশনটি খুলুন, আপনার ফন্টে নেভিগেট করুন তারপরে কমান্ড + I টিপুন। পোস্টস্ক্রিপ্ট নাম ফন্ট আপনি যে নামটি এখানে ব্যবহার করতে চাই:

    UILabel.appearance ()। Font = UIFont (নাম: " পোস্টস্ক্রিপ্টনাম ", আকার: 17)


0

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

আমি যে প্রধান জিনিসটি সামনে এলাম তা হ'ল স্ট্রিংয়ের একটি এক্সটেনশন যুক্ত করা (স্যুইফ্ট ব্যবহার করে) নির্দিষ্ট বৈশিষ্ট্যযুক্ত একটি বিশিষ্ট স্ট্রিং তৈরি করতে। উদাহরণ এখানে মার্কার ফল্ট ফন্ট ব্যবহার করে, কারণ এটি হেলভেটিকা ​​থেকে সহজেই পৃথক। উদাহরণটি একে অপরের থেকে আরও স্বতন্ত্র করার জন্য অনুচ্ছেদের মধ্যে কিছুটা অতিরিক্ত ফাঁক দেখায়।

extension String {
func toMarkerFelt() -> NSAttributedString {
    var style = NSMutableParagraphStyle()
    style.paragraphSpacing = 5.0
    let markerFontAttributes : [NSObject : AnyObject]? = [
        NSFontAttributeName : UIFont(name: "Marker Felt", size: 14.0)!,
        NSParagraphStyleAttributeName: style,
        NSForegroundColorAttributeName : UIColor.blackColor()
    ]
    let s = NSAttributedString(string: self, attributes: markerFontAttributes)
    return s
    }
}

তারপরে, আমার কাস্টম টেবিলভিউসেল-তে আপনি এটি আপনার পাঠ্য পাঠাতে চান এবং এটি এটি ইউআইএলবেলের একটি বিশিষ্ট স্ট্রিংতে রূপান্তর করে।

//  MarkerFeltCell.swift
class MarkerFeltCell: UITableViewCell {
@IBOutlet weak var myLabel: UILabel!
func configureCellWithString(inputString : String) {
    myLabel.attributedText = inputString.toMarkerFelt()
}}

টেবিলভিউ সহ ভিউ কন্ট্রোলারে আপনার ভিউডিডডলড () তে আপনার ঘরটি নিবন্ধভুক্ত করা উচিত - আমি একটি নিব ব্যবহার করেছি, সুতরাং এরকম কিছু:

let cellName = "MarkerFeltCell"
tableView.registerNib(UINib(nibName: cellName, bundle: nil), forCellReuseIdentifier: cellName)

কক্ষটি কত লম্বা হওয়া উচিত তা নির্ধারণের জন্য, একটি প্রোটোটাইপ ঘর তৈরি করুন যা আকারের তথ্য পাওয়ার জন্য ব্যবহৃত হয়, এবং টেবিলভিউতে কখনও যুক্ত হয় না। সুতরাং, আপনার দৃষ্টিতে কন্ট্রোলারের ভেরিয়েবলগুলি:

var prototypeSummaryCell : MarkerFeltCell? = nil

তারপরে (সম্ভবত ওভাররাইড - আপনার দৃশ্যের নিয়ামকের উপর নির্ভর করে) উচ্চতার জন্যরোআউটআইডেক্সপথ:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        // ...
    if xib == "MarkerFeltCell" {
            if prototypeCell == nil {
                prototypeCell = tableView.dequeueReusableCellWithIdentifier(xib) as? MarkerFeltCell
            }
            let width : CGFloat = tableView.bounds.width
            let height : CGFloat = prototypeCell!.bounds.height
            prototypeCell?.bounds = CGRect(x: 0, y: 0, width: width, height: height)
            configureCell(prototypeCell!, atIndexPath: indexPath)
            prototypeSummaryCell?.layoutIfNeeded()
            let size = prototypeSummaryCell!.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize)
            let nextHeight : CGFloat = ceil(size.height + 1.0)
            return nextHeight
    } else {  // ...

উপরের কোডে, প্রোটোটাইপসেলটি প্রথমবারের জন্য প্রয়োজনীয় হবে। প্রোটোটাইপসেলটি অটোসাইজিং প্রক্রিয়াটি পেরিয়ে যাওয়ার পরে সেলটির উচ্চতা নির্ধারণ করতে ব্যবহৃত হয়। সিল () ফাংশনটি দিয়ে আপনাকে উচ্চতাটি গোল করতে হবে। আমি কিছু অতিরিক্ত fudge ফ্যাক্টর যুক্ত।

চূড়ান্ত কোড বিট হ'ল আপনি কীভাবে ঘরের জন্য পাঠ্যটি কনফিগার করেন। এই উদাহরণের জন্য, সহজভাবে:

func configureCell(cell :UITableViewCell, atIndexPath indexPath: NSIndexPath) {
    if let realCell = cell as? MarkerFeltCell  {
        realCell.configureCellWithString("Multi-line string.\nLine 2.\nLine 3.")    // Use \n to separate lines
    }
}

এছাড়াও, এখানে নিব একটি শট আছে। ঘরটির প্রান্তগুলিতে লেবেলটি পিন করা হয়েছে (মার্জিন পছন্দসই সহ), তবে নীচে সীমাবদ্ধতার জন্য "প্রয়োজনীয়" এর চেয়ে কম অগ্রাধিকার সহ "গ্রেটার থান বা সমান" সীমাবদ্ধতা ব্যবহার করেছেন।

ঘরের প্রতিবন্ধকতা

লেবেলের ফন্টটি অ্যাট্রিবিউটে সেট করুন। আসল আইবি হরফ কিছু যায় আসে না।

LabelFont

এই ক্ষেত্রে ফলাফল:

সেল রেজাল্টস


0

বৈশিষ্ট্যযুক্ত স্ট্রিংয়ের ক্ষেত্রে আপনি ফন্টের তালিকায় কাস্টম ফন্ট যুক্ত করতে পারেন - ফন্ট আইকনে ক্লিক করুন এটি নিম্নলিখিত ডায়লগটি প্রদর্শন করবে the নিম্নলিখিত সংলাপে আপনি নিজের নিজস্ব বিভাগ বা কাস্টম ফন্টের জন্য বিদ্যমান একটি যুক্ত করতে পারেন। গুণিত ফন্ট ডায়ালগ

এটি পরিচালনা করার জন্য ফন্ট ক্লিক করুন পরে আপনার তৈরি বা বিদ্যমান একটিতে নিম্নলিখিত বিভাগটি নির্বাচন করে। বিভাগে ফন্ট যোগ করতে + সাইন ক্লিক করুন। হরফ ডায়ালগ পরিচালনা করুন


0

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

পাঠ্যদর্শনগুলির জন্য :

UITextView.appearance().font = UIFont(name: "IranSans", size: 17)

লেবেলের জন্য :

UILabel.appearance().font = UIFont(name: "IranSans", size: 17)

এবং এই দুটি মত ইউআইভিউর বিশ্রামের জন্য like


0

কোডে বিশিষ্ট স্ট্রিংয়ের জন্য কাস্টম ফন্টগুলি প্রয়োগ করার জন্য: এটিকে সেট করার চেষ্টা করুন viewDidLayoutSubviews। আমার ভুলটি এটি করছিল viewDidLoad, এটি সেখানে প্রয়োগ করা হবে না।

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