ios - দুটি লাইনের পাঠ্য সহ সুইফট-ইউআইবাটন




swift uibutton (6)

আমি ভাবছিলাম যে দুটি লাইনের পাঠ্য সহ একটি ইউআইবাটন তৈরি করা সম্ভব কিনা। আমার প্রতিটি লাইন আলাদা ফন্টের আকারের প্রয়োজন। প্রথম লাইনটি 17 পয়েন্ট এবং দ্বিতীয়টি হবে 11 পয়েন্ট। আমি একটি ইউআইবাটনটির ভিতরে দুটি লেবেল রাখার সাথে ঝামেলা করার চেষ্টা করেছি, তবে আমি সেগুলি বোতামের সীমানার ভিতরে থাকতে পারি না।

আমি ইউআই বিল্ডারে এই সমস্তগুলি করার চেষ্টা করছি, এবং প্রোগ্রামগতভাবে নয়।

ধন্যবাদ


আমি এটি স্থির করেছি এবং আমার সমাধানটি কেবল স্টোরিবোর্ডে ছিল।

পরিবর্তন করুন:

এটি পরিচয় পরিদর্শক -> ব্যবহারকারী সংজ্ঞায়িত রানটাইম বৈশিষ্ট্যগুলিতে (এই কীপ্যাথগুলি) যুক্ত হয়েছে:

  • সংখ্যা অফলাইনস = 2
  • শিরোনামলিবেল.টেক্সটএলাইনমেন্ট = 1

ব্যবহারকারীর সংজ্ঞায়িত রানটাইম বৈশিষ্ট্য

আমি এটি বৈশিষ্ট্য পরিদর্শকটিতে যুক্ত করেছি:

  • লাইন বিরতি = শব্দ মোড়ানো

শব্দ মোড়ানো


আমি প্রায় একই বিষয় খুঁজছিলাম, আমার দুটি ভিন্ন ফন্টের আকারের প্রয়োজন নেই। যদি কেউ একটি সহজ সমাধান খুঁজছেন:

    let button = UIButton()
    button.titleLabel?.numberOfLines = 0
    button.titleLabel?.lineBreakMode = .byWordWrapping
    button.setTitle("Foo\nBar", for: .normal)
    button.titleLabel?.textAlignment = .center
    button.sizeToFit()
    button.addTarget(self, action: #selector(rightBarButtonTapped), for: .allEvents)
    navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)

এটি করার একটি উপায় হ'ল লেবেলগুলি সহ, আমার ধারণা। আমি এটি করেছি, এবং এটি ঠিক আছে বলে মনে হচ্ছে। আমি এটি একটি ইউআইবাটন হিসাবে তৈরি করতে এবং তারপরে লেবেলগুলি প্রকাশ করতে পারতাম বলে আমার ধারণা। আমি জানি না এটি কোনও অর্থবোধ করে কিনা।

    let firstLabel = UILabel()

    firstLabel.backgroundColor = UIColor.lightGrayColor()
    firstLabel.text = "Hi"
    firstLabel.textColor = UIColor.blueColor()
    firstLabel.textAlignment = NSTextAlignment.Center
    firstLabel.frame = CGRectMake(0, testButton.frame.height * 0.25, testButton.frame.width, testButton.frame.height * 0.2)
    testButton.addSubview(firstLabel)

    let secondLabel = UILabel()

    secondLabel.backgroundColor = UIColor.lightGrayColor()
    secondLabel.textColor = UIColor.blueColor()
    secondLabel.font = UIFont(name: "Arial", size: 12)
    secondLabel.text = "There"
    secondLabel.textAlignment = NSTextAlignment.Center
    secondLabel.frame = CGRectMake(0, testButton.frame.height * 0.5, testButton.frame.width, testButton.frame.height * 0.2)
    testButton.addSubview(secondLabel)

কোডে আপনাকে এর কিছু করা দরকার। আপনি আইবিতে 2 টি ভিন্ন ফন্ট সেট করতে পারবেন না। লাইন ব্রেক ব্রেক মোডকে চরিত্রের মোড়কে পরিবর্তন করার পাশাপাশি শিরোনাম সেট করতে আপনার এর মতো কিছু দরকার,

override func viewDidLoad() {
        super.viewDidLoad()
        var str = NSMutableAttributedString(string: "First line\nSecond Line")
        str.addAttribute(NSFontAttributeName, value: UIFont.systemFontOfSize(17), range: NSMakeRange(0, 10))
        str.addAttribute(NSFontAttributeName, value: UIFont.systemFontOfSize(12), range: NSMakeRange(11, 11))
        button.setAttributedTitle(str, forState: .Normal)

    }

লাইন বিরতি চরিত্রের মোড়কে পরিবর্তন করুন, আপনার বোতামটি নির্বাচন করুন এবং অ্যাট্রিবিউট ইনস্পেক্টর লাইন ব্রেকে যান এবং এটিকে চরিত্রের মোড়কে পরিবর্তন করুন


সুইফট 3 সিনট্যাক্স

let str = NSMutableAttributedString(string: "First line\nSecond Line")
str.addAttribute(NSFontAttributeName, value: UIFont.systemFont(ofSize: 17), range: NSMakeRange(0, 10))
str.addAttribute(NSFontAttributeName, value: UIFont.systemFont(ofSize: 12), range: NSMakeRange(11, 11))
button.setAttributedTitle(str, for: .normal)




uibutton