ios - আপনি সুইফটে ইউআইবাটন এবং ইউআইএলবেলের পাঠ্যটি কীভাবে ঘোরান?




swift uibutton (4)

দ্রুতগতি

90 ডিগ্রি ঘড়ির কাঁটার দিকে ঘোরান:

    var rotateLabel: UILabel = UILabel(frame: CGRectMake(100, 0, 28, 159))

    rotateLabel.textAlignment = .Right

    rotateLabel.text = "Hello!"

    self.view.addSubview(rotateLabel)

    rotateLabel.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))

    rotateLabel.frame = CGRectMake(100, 0, 28, 159)

ঘড়ির কাঁটার দিকে 90 ডিগ্রি ঘোরান:

    var rotateLabel: UILabel = UILabel(frame: CGRectMake(100, 0, 28, 159))

    rotateLabel.textAlignment = .Right

    rotateLabel.text = "Hello!"

    self.view.addSubview(rotateLabel)

    rotateLabel.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI_2))

    rotateLabel.frame = CGRectMake(100, 0, 28, 159)

আপনি কীভাবে UIButton এবং UILabel পাঠ্য ঘোরান? 90 ডিগ্রি, 180 ডিগ্রি।

দ্রষ্টব্য: আপনি এটিটিকে সদৃশ হিসাবে চিহ্নিত করার আগে আমি ইচ্ছাকৃতভাবে আমার প্রশ্নেরটিকে এটির একটি সুইফ্ট সংস্করণ হিসাবে মডেলিং করছি: আপনি কীভাবে ইউআইবাটন এবং ইউআইএলবেলের পাঠ্যটি উদ্দেশ্য-সিতে ঘোরান?


অনন্তু আর কৃষ্ণনের কাছ থেকে উত্তরটি সুইফট ৩.১-এ ফিট করার জন্য রূপান্তরিত হয়েছে।

ঘড়ির কাঁটার দিকে 90 ডিগ্রি ঘোরান:

let rotateLabel: UILabel = UILabel(frame: CGRect(x:15, y:66, width:28, height:159))
rotateLabel.textAlignment = .right
rotateLabel.text = "TEXT"
self.view.addSubview(rotateLabel)
rotateLabel.transform = CGAffineTransform(rotationAngle: CGFloat(-(Double.pi / 2.0)))
rotateLabel.frame = CGRect(x:15, y:66, width:28, height:159)

আমি এই উত্তরটির অনুরূপ বিন্যাসে আমার উত্তরটি রাখছি।

মূল লেবেলটি এখানে:

90 ডিগ্রি ঘড়ির কাঁটার দিকে ঘোরান:

yourLabelName.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 2)

180 ডিগ্রি ঘোরান:

yourLabelName.transform = CGAffineTransform(rotationAngle: CGFloat.pi)

ঘড়ির কাঁটার দিকে 90 ডিগ্রি ঘোরান:

yourLabelName.transform = CGAffineTransform(rotationAngle: -CGFloat.pi / 2)

বোতামটি ঘোরানোর জন্য একই জিনিস করুন। ধন্যবাদ, স্পর্শ ইভেন্টগুলিও ঘোরানো হয়েছে তাই বোতামটি আরও কিছু না করে তার নতুন সীমানায় ক্লিকযোগ্য।

yourButtonName.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 2)

নোট:

CGAffineTransform জন্য ডকুমেন্টেশন

মূল ফর্ম্যাটটি হ'ল CGAffineTransform(rotationAngle: CGFloat) যেখানে CGAffineTransform(rotationAngle: CGFloat) ডিগ্রি নয়, রেডিয়ানে থাকে।

পূর্ণ বৃত্তে 2 360 রেডিয়ান রয়েছে (360 ডিগ্রি)। CGFloat.pi দরকারী ধ্রুবক CGFloat.pi অন্তর্ভুক্ত।

  • CGFloat.pi = π = 180 ডিগ্রি
  • CGFloat.pi / 2 = π / 2 = 90 ডিগ্রি

স্বয়ংক্রিয় বিন্যাস:

ঘোরানো দর্শনগুলির সাথে অটো বিন্যাস কাজ করে না। (এর কারণ ব্যাখ্যা করার জন্য ফ্রেম বনাম বাউন্ড দেখুন)) কাস্টম ভিউ তৈরি করে এই সমস্যা সমাধান করা যেতে পারে। এই উত্তরটি UITextView জন্য এটি কীভাবে করবেন তা দেখায় তবে এটি কোনও লেবেল বা বোতামের জন্য একই মূল ধারণা concept (দ্রষ্টব্য যে আপনাকে সেই উত্তরে CGAffineTransformScale লাইনটি সরিয়ে ফেলতে হবে কারণ আপনার পাঠ্যটি আয়না করার দরকার নেই need)

সংশ্লিষ্ট


আমি ডিগ্রি এবং কাউন্টার / ক্লকওয়াইসের বিকল্পগুলির সাথে এক্সটেনশন ব্যবহার করার পরামর্শ দেব

func rotate(degrees: Int , clockwise: Bool)
{
    let x  = 180 / degrees
    if (clockwise)
    {
        self.transform = CGAffineTransform(rotationAngle: CGFloat.pi / CGFloat(x))
    }
    else
    {
        self.transform = CGAffineTransform(rotationAngle: -CGFloat.pi / CGFloat(x))
    }
}

আমি এটি extension UILabel {} হিসাবে extension UILabel {} use use হিসাবে ব্যবহার করি তবে এটি অবশ্যই আপনার পক্ষে to







uilabel