আইফোনের অনস্ক্রিন কীবোর্ডের উচ্চতা কত?


85

প্রতিকৃতিতে উচ্চতা এবং ল্যান্ডস্কেপের উচ্চতা পয়েন্টগুলিতে পরিমাপ করা হয়।


4
এখানে আপনি একটি আইফোন এর সমস্ত মাত্রা খুঁজে পেতে পারেন: আইফোন মাত্রা
Pfitz

4
শেষ "আইফোন মাত্রা" লিঙ্কটি ব্যবহার করবেন না! এটি ২০১১ সালের, আইওএস ৮ আসার আগে এবং অনস্ক্রিন কীবোর্ডের উচ্চতা পরিবর্তনের অনুমতি দেয়।
মাইক গ্লেডহিল

@ মাইকগ্লেডহিল অনস্ক্রিন কীবোর্ডের উচ্চতা আইওএস ৮ এর আগেও পরিবর্তিত হয়
পুনরায় সনাক্ত করুন

সম্পর্কিত: আপনি কিবোর্ড হাইটের প্রকৃত মানগুলি (যেমন ডিবাগের উদ্দেশ্যে) সন্ধান করছেন, আইওএস বিদেশী ভাষার কীবোর্ড হাইটগুলি দেখুন?
সংবেদনশীল

উত্তর:


212

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

আমার দর্শন নিয়ন্ত্রকের আরআর পদ্ধতিতে, আমি নিবন্ধভুক্ত করেছি UIKeyboardDidShowNotification:

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(keyboardOnScreen:) name:UIKeyboardDidShowNotification object:nil];

তারপরে, আমি keyboardOnScreen:কীবোর্ডের ফ্রেমে অ্যাক্সেস পেতে নিম্নলিখিত কোডটি ব্যবহার করেছি । এই কোড পায় userInfoবিজ্ঞপ্তি থেকে অভিধান এবং তারপর ব্যবহারের NSValueসঙ্গে যুক্ত UIKeyboardFrameEndUserInfoKey। এরপরে আপনি সিজিআরেক্ট অ্যাক্সেস করতে পারেন এবং এটিকে আপনার ভিউ কন্ট্রোলারের দৃশ্যের স্থানাঙ্কে রূপান্তর করতে পারেন। সেখান থেকে, সেই ফ্রেমের উপর ভিত্তি করে আপনার যে কোনও গণনা প্রয়োজন perform

-(void)keyboardOnScreen:(NSNotification *)notification 
 {
        NSDictionary *info  = notification.userInfo;
        NSValue      *value = info[UIKeyboardFrameEndUserInfoKey];

        CGRect rawFrame      = [value CGRectValue];
        CGRect keyboardFrame = [self.view convertRect:rawFrame fromView:nil];

        NSLog(@"keyboardFrame: %@", NSStringFromCGRect(keyboardFrame));
 }

সুইফট

এবং সুইফটের সাথে সমতুল্য প্রয়োগ:

NotificationCenter.default.addObserver(self, selector: #selector(keyboardDidShow), name: UIResponder.keyboardDidShowNotification, object: nil)


@objc
func keyboardDidShow(notification: Notification) {
    guard let info = notification.userInfo else { return }
    guard let frameInfo = info[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue else { return }
    let keyboardFrame = frameInfo.cgRectValue
    print("keyboardFrame: \(keyboardFrame)")
}

4
যদিও এটি কিছুটা জড়িত বলে মনে হচ্ছে এটি অবশ্যই কীবোর্ডের আকারকে হার্ড-কোডিংয়ের চেয়ে ভাল। সঠিক উত্তর.
n13

4
এই উত্তরটি ভোট দিয়েছেন এবং প্রশ্নটি নীচে ভোট দিয়েছেন। ওপি অবশ্যই জানেন না যে তিনি কী বিষয়ে কথা বলছেন। সাবধানে ছেলেরা! এই উত্তরটি সঠিক!
superarts.org

4
ল্যান্ডস্কেপের জন্য এক পরিপূরক: যদি (SYSTEM_VERSION_LESS_THAN (@ "8.0")) key _ কীবোর্ডহাইট = কীবোর্ডফ্রেম.সাইজ.উইথ; } অন্য {_ কীবোর্ডহাইট = কীবোর্ডফ্রেম.সাইজ.হাইট; }
লিয়াংওয়াং

4
কীবোর্ডটি উপস্থিত না হয়ে এটি করার কোনও উপায় আছে? আমার ক্ষেত্রে, আমি কীবোর্ডের পিছনে একই উচ্চতা (ম্যাসেঞ্জারদের কীভাবে জিনিস রয়েছে তার সমান) সহ কিছু পেতে চাই
জন

@ superarts.org এ প্রশ্নটি দেওয়ার দরকার নেই; লোকেরা সম্ভবত এটি অনুসন্ধান করবে এবং তারা এখন এই উত্তরটি দেখতে পাবে .. তাই সবই ভাল :)
জ্যাক

46

মনে রাখবেন যে, আইওএস 8 এর সাথে, অনস্ক্রিন কীবোর্ডের আকারটি বিভিন্ন রকম হতে পারে। অনুমান করবেন না যে অনস্ক্রিন কীবোর্ড সর্বদা দৃশ্যমান হবে ( নির্দিষ্ট উচ্চতার সাথে) বা অদৃশ্য।

এখন, আইওএস 8 এর সাহায্যে ব্যবহারকারী পাঠ্য-পূর্বাভাসের অঞ্চলটি চালু এবং বন্ধও সোয়াইপ করতে পারে ... এবং যখন তারা এটি করে, এটি আবার কোনও অ্যাপ্লিকেশানের keyboardWillShowইভেন্টটিকে সরিয়ে দেয় ।

এটি প্রচুর লিগ্যাসি কোডের নমুনাগুলি ভেঙে দেবে , যা কোনও keyboardWillShowইভেন্ট লেখার সুপারিশ করেছিল , যা কেবলমাত্র অনস্ক্রিন কীবোর্ডের বর্তমান উচ্চতা পরিমাপ করে এবং আপনার নিয়ন্ত্রণগুলি এই (পরম) পরিমাণে পৃষ্ঠায় উপরে বা নীচে স্থানান্তরিত করে।

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

অন্য কথায়, যদি আপনি এমন কোনও নমুনা কোড দেখতে পান যা কেবল আপনাকে একটি keyboardWillShowইভেন্ট যুক্ত করতে বলে , কীবোর্ডের উচ্চতা পরিমাপ করে, তারপরে আপনার নিয়ন্ত্রণের উচ্চতাগুলিকে এই পরিমাণের সাথে আকার দিন, এটি আর সবসময় কাজ করবে না।

উপরের আমার উদাহরণে, আমি নিম্নলিখিত সাইট থেকে নমুনা কোড ব্যবহার করেছি, যা উল্লম্ব সীমাবদ্ধতার constantমানটিকে অ্যানিমিট করে ।

অটোলআউট অনুশীলন করা হচ্ছে

আমার অ্যাপ্লিকেশনটিতে, আমি আমার প্রতিবন্ধকতা যুক্ত করেছি UITextView, স্ক্রিনের নীচে সেট করে। যখন স্ক্রিনটি প্রথম প্রদর্শিত হয়েছিল, আমি এই প্রাথমিক উল্লম্ব দূরত্বটি সংরক্ষণ করেছি।

তারপর, যখনই আমার keyboardWillShowঘটনা বন্ধ লাথি পরার, আমি যোগ (নতুন) কীবোর্ডের উচ্চতা এই মূল বাধ্যতা মান (তাই বাধ্যতা নিয়ন্ত্রণ উচ্চতা পরিবর্তন করা)।

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

হ্যাঁ এটা কুৎসিত.

এবং আমি কিছুটা বিরক্ত / বিস্মিত হয়েছি যে এক্সকোড 6 এর ভয়াবহ-বেদনাদায়ক অটোলআউটটি কেবল আমাদের স্ক্রিনের নীচে বা অনস্ক্রিন কীবোর্ডের শীর্ষে নিয়ন্ত্রণের বোতলগুলিকে সংযুক্ত করতে দেয় না।

সম্ভবত আমি কিছু মিস করছি।

আমার বিচক্ষণতা ছাড়া অন্য।


আসলে, কীবোর্ডের আকার সর্বদা পরিবর্তিত হয় এমনকি পুরানো আইওএস সংস্করণেও। উদাহরণস্বরূপ হস্তাক্ষর চীনা ভাষা চেক করুন
পুনরায় সনাক্তকরণ

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

4
@ মাইকগ্লেডহিল আমি মনে করি আপনি পাঠ্য ভবিষ্যদ্বাণী বারটি ঘোরানোর কারণে বা (/ লুকিয়ে রাখার কারণে) ফ্রেম পরিবর্তনের জন্য "ইউআইকিবোর্ডওয়িলচ্যাঞ্জফ্রেমনিটিফিকেশন" ব্যবহার করবেন ...
আবদালরহমান শতো

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

4
কেন এর বেশি মনোযোগ নেই?
rfoo

31

পোর্ট্রেট মোডের জন্য কীবোর্ডের উচ্চতা 216pts এবং ল্যান্ডস্কেপ মোডের জন্য 162pts।

উৎস


136
আপনি যদি স্ব-উত্তরযুক্ত প্রশ্ন পোস্ট করতে চলেছেন তবে কমপক্ষে শালীন উত্তর দিন। কীবোর্ডের আকারটি বিজ্ঞপ্তি অবজেক্ট থেকে পাওয়া উচিত, কোনও ওয়েবসাইট থেকে নেওয়া হার্ড-কোডেড মান নয়। এখানে
jrturton

16
@ Jrturton প্রশ্নটি নয় যে প্রোগ্রামটিমেটিকভাবে উচ্চতা কীভাবে পাওয়া যায়। এই প্রশ্নটি কেবল প্রোগ্রামারদের জন্যই নয়, গ্রাফিক্স ডিজাইনার এবং এ জাতীয় ক্ষেত্রেও কার্যকর। আপনি যে উত্তরটি জিজ্ঞাসা করছেন তা অন্য প্রশ্নের সাথে সম্পর্কিত। আসলে, সেই উত্তরটির সাথে আরও একটি প্রশ্ন রয়েছে: stackoverflow.com/a/7302291/310121
এরিক বি

48
@ এরিকবি সাবধান! কীবোর্ডের আকারটি ভাষা এবং কীবোর্ডের ধরণের উপর নির্ভর করে।
গ্যাব্রিয়েল

13
নিজের স্বার্থে, হার্ড-কোডেড মানটি কখনও ব্যবহার করবেন না! একটি শক্ত উদাহরণ হিসাবে, কোনও ব্যবহারকারী বিভাজন (দ্বি-অংশ) কীবোর্ড ব্যবহার করছেন যা উচ্চতার বিষয়ে খুব বেশি যত্ন করে না।
টিমো

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

16

সংস্করণ দ্রষ্টব্য: কাস্টম কীবোর্ড আকারগুলি সমর্থন করার কারণে এটি iOS 9 এবং 10 তে আর মূল্য হবে না।

এটি মডেল এবং কুইকটাইপ বারের উপর নির্ভর করে:

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

http://www.idev101.com/code/User_Interface/sizes.html


4
সংস্করণ নোট : তারা কাস্টম কীবোর্ড মাপ সমর্থন করে আইওএস 9 & 10 এ আর মান হবে না।
র‌্যাপটার

10

কীবোর্ডের উচ্চতা মডেল, কুইকটাইপ বার, ব্যবহারকারীর সেটিংসের উপর নির্ভর করে ... সর্বোত্তম পদ্ধতির ডায়নামিকভাবে গণনা করা হয়:

সুইফট 3.0

    var heightKeyboard : CGFloat?

    override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
            NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardShown(notification:)), name: NSNotification.Name.UIKeyboardDidShow, object: nil)
    }

    func keyboardShown(notification: NSNotification) {
           if let infoKey  = notification.userInfo?[UIKeyboardFrameEndUserInfoKey],
               let rawFrame = (infoKey as AnyObject).cgRectValue {
               let keyboardFrame = view.convert(rawFrame, from: nil)
               self.heightKeyboard = keyboardFrame.size.height
               // Now is stored in your heightKeyboard variable
           }
    }

9

আমি সর্বশেষ উত্তর খুঁজে পাচ্ছি না, তাই আমি সিমুলেটর দিয়ে এটি সমস্ত পরীক্ষা করি ((আইওএস 11.0)


ডিভাইস | পর্দার উচ্চতা | প্রতিকৃতি | ল্যান্ডস্কেপ

আইফোন 4 এস | 480.0 | 216.0 | 162.0

আইফোন 5, আইফোন 5 এস, আইফোন এসই | 568.0 | 216.0 | 162.0

আইফোন 6, আইফোন 6 এস, আইফোন 7, আইফোন 8, আইফোন এক্স | 667.0 | 216.0 | 162.0

আইফোন 6 প্লাস, আইফোন 7 প্লাস, আইফোন 8 প্লাস | 736.0 | 226.0 | 162.0

আইপ্যাড 5 ম প্রজন্ম, আইপ্যাড এয়ার, আইপ্যাড এয়ার 2, আইপ্যাড প্রো 9.7, আইপ্যাড প্রো 10.5, আইপ্যাড প্রো 12.9 | 1024.0 | 265.0 | 353.0


ধন্যবাদ!


0

আইফোন

কীবোর্ড আকার:

  1. 5 এস, এসই, 5, 5 সি (320 × 568) কীবোর্ড সাইজ = (0.0, 352.0, 320.0, 216.0) কীবোর্ড সাইজ = (0.0, 315.0, 320.0, 253.0)

2.6 এস, 6,7,8: (375 × 667): কীবোর্ডসাইজ = (0.0, 407.0, 375.0, 260)।

3.6 +, 6 এস +, 7+, 8+: (414 × 736) কীবোর্ড সাইজ = (0.0, 465.0, 414.0, 271.0)

4.XS, এক্স: (375 এক্স 812) কীবোর্ড সাইজ = (0.0, 477.0, 375.0, 335.0)

5.এক্সআর, এক্সএসএমএক্স ((414 x 896) কীবোর্ড সাইজ = (0.0, 550.0, 414.0, 346.0)


0

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

আমি এমনকি কিভাবে আপনি আপনার কোডে এই মাত্রা ব্যবহার করতে পারেন ব্যাখ্যা এখানে

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

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

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