প্রোগ্রামগতভাবে নেভিগেশন বারের উচ্চতা পান


131

আমি জানি যে আরও ভিউ নিয়ন্ত্রণকারী (নেভিগেশন বার) এর উপস্থিতি ইউআইভিউউকে তার উচ্চতা দ্বারা নীচে ঠেলে দেয়। আমি আরও জানি যে এই উচ্চতা = 44px। আমি আরও আবিষ্কার করেছি যে এই ধাক্কা ডাউনটি বজায় রাখে[self.view].frame.origin.y = 0

সুতরাং আমি কীভাবে এই ন্যাভিগেশন বারের উচ্চতা নির্ধারণ করব, এটি কেবল একটি ধ্রুবকটিতে সেট করা ছাড়া?

বা, সংক্ষিপ্ত সংস্করণ, আমি কীভাবে নির্ধারণ করব যে আমার ইউআইভিউ শীর্ষে নেভিগেশন বারের সাথে প্রদর্শিত হচ্ছে?


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

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

উদাহরণস্বরূপ, একটি ইউআইভিউতে আমার কাছে উপরে থেকে নীচে পর্যন্ত রয়েছে:

ইউআইভিউ - উভয় স্প্রিংস সেট (ডিফল্ট কেস) এবং কোনও স্ট্রুট নেই

ইউআইএসক্রোলভিউ - যদি আমি দুটি স্প্রিংস সেট করে রাখি এবং অন্য সমস্ত কিছু (ইউআইভিউয়ের মতো) সাফ করি, তবে ইউআইবুটটন অবিলম্বে এটির উপরে অবস্থিত on আমি যদি সমস্ত কিছু সাফ করি, তবে ইউআইবাটন ঠিক আছে, তবে স্ট্যাটাসবারের নীচে থাকা শীর্ষস্থানটি কেবল শীর্ষ স্তরের সেটিংয়ের পিছনে লুকিয়ে থাকে, ইউআইবাটনটি ট্যাব বারের পিছনে নেমে আসে।

ইউিলাবেল এবং ইউআইএমেজ পরবর্তী উল্লম্বভাবে - শীর্ষ স্ট্রুট সেট, অন্য কোথাও নমনীয়

কেবলমাত্র ইউআইবিউব ভিউ রয়েছে এমন কয়েকজনের জন্য ছবিটি সম্পূর্ণ করতে:

UIWebView - Struts: শীর্ষ, বাম, ডান স্প্রিংস: উভয়

ইউআইবাটন - কিছুই সেট নয়, অর্থাত্ সর্বত্র নমনীয়

যদিও আমার হালকা বাল্ব ম্লান, সেখানে প্রত্যাশা রয়েছে।


আমার সাথে সহ্য করুন কারণ আমার একটি সংক্ষিপ্ত জবাব মন্তবীর চেয়ে আরও বেশি ঘর প্রয়োজন।

আমি আসলে কী জন্য মাছ ধরছি তা বোঝার চেষ্টা করার জন্য ধন্যবাদ ... সুতরাং এখানে যায়।

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

সুতরাং, ইউআইআইমেজ, পাঠ্য ইত্যাদি ইউআইউইউবভিউ (কিছুতে) ইউআইবাটন

উপরের সমস্তটি চারপাশে একটি ইউআইএসক্রোলভিউ।

2) যাঁদের একটি ইউআইবিউব ভিউ রয়েছে, তাদের অটোরিসাইজিং ম্যাস্ক দেখতে দেখতে:

   
   |
   

   ^
   |
   |

| - | ← ---- → | - | | | V UIButton এর মুখোশের কোনও সেট নেই, অর্থাত্ সর্বত্র নমনীয়

আমার -ভিউডিডলুডের মধ্যে, আমি আমার-অবস্থানের সাবভিউগুলি কল করি যার মধ্যে আমি নিম্নলিখিতটি করি:

যদি কোনও ইউআইবিউবভিউ না থাকে তবে আমি যে ইউআইবাটনটি আইবি দিয়েছিলাম সেটি কেন্দ্র ব্যতীত আমি কিছুই করি না।

আমার যদি কোনও ইউআইবিউব ভিউ থাকে তবে আমি এর * সামগ্রী * উচ্চতা নির্ধারণ করি এবং সম্পূর্ণ সামগ্রী আবদ্ধ করার জন্য এর ফ্রেমটি সেট করি।

UIScrollView *scrollViewInsideWebView = [[webView_ subviews] lastObject];
webViewContentHeight = scrollViewInsideWebView.contentSize.height;
[webView_ setFrame:CGRectMake(webViewOriginX, webViewOriginY,
                          sameWholeViewScrollerWidth, webViewContentHeight)]

একবার আমি এটি করি, তারপরে আমি প্রোগ্রামিয়ালি ইউআইবাটনটিকে নীচে ঠেলে রাখি যাতে এটি ইউআইউবভিউয়ের নীচে রাখা হয় placed

যতক্ষণ না আমি এটিকে প্রতিকৃতি থেকে ল্যান্ডস্কেপ এ ঘুরিয়েছি সবকিছুই কাজ করে।

আমি আমার -didRotateFromInterfaceOrientation এর মধ্যে আমার -repositionSubViews কে কল করি।

আমার ইউআইবিউব ভিউয়ের সামগ্রীর উচ্চতা কেন ঘোরার সাথে পরিবর্তন হয় না ?.

প্রতিকৃতি থেকে ল্যান্ডস্কেপ পর্যন্ত, সামগ্রীর প্রস্থ বিস্তৃত হওয়া উচিত এবং সামগ্রীর উচ্চতা সঙ্কুচিত হওয়া উচিত। এটি দৃশ্যমানভাবে যেমনটি করা উচিত তেমন করে তবে আমার এনএসলগের অনুসারে তা নয়।

যাইহোক, ইউআইবিউব ভিউ সহ বা তার বাইরে, আমি ল্যান্ডস্কেপ মোডে থাকাকালীন বোতামটি ট্যাববারের নীচে চলার বিষয়ে কথা বলেছি তবে এটি স্ক্রোলটি দেখা যাবে না। আমি এটি "ট্যাববারের" পিছনে দেখি যখন "জোরে" স্ক্রোল করি তবে তা ট্যাববারের পিছনে "পিছনে পড়ে" যায়।

নীচের লাইনটি, এটি সর্বশেষে আমি ট্যাববার এবং নেভিগেশনবারের উচ্চতা সম্পর্কে জিজ্ঞাসা করেছি কারণ ট্যাববারটি ইউআইভিউয়ের নীচে এবং উদ্ভিদ বারটি ইউআইভিউকে নীচে ঠেলে দেয়।

এখন, আমি এখানে একটি বা দুটি মন্তব্য যুক্ত করতে যাচ্ছি কারণ তারা এর আগে তা বোঝায় না।

কোনও ইউআইবিউব ভিউ ছাড়াই, আমি আইবি দ্বারা দেখা হিসাবে সমস্ত কিছু ছেড়ে চলেছি।

একটি ইউআইউইভিউভিউ দিয়ে, আমি ইউআইবিউবভিউর ফ্রেমটি উচ্চতর করে এর বিষয়বস্তুতে উচ্চতা বাড়িয়েছি এবং সমস্ত উপ-দর্শনকে ঘিরে চারপাশের ইউআইএসক্রোলভিউয়ের উচ্চতাও সামঞ্জস্য করি।

আচ্ছা ওখানে তোমার আছে।

উত্তর:


258

এরকম কিছু করুন?

    NSLog(@"Navframe Height=%f",
        self.navigationController.navigationBar.frame.size.height);

সুইফট সংস্করণটি এখানে অবস্থিত


হালনাগাদ

আইওএস 13

যেহেতু এতে statusBarFrameঅবহিত করা হয়েছে iOS13আপনি এটি ব্যবহার করতে পারেন:

extension UIViewController {

    /**
     *  Height of status bar + navigation bar (if navigation bar exist)
     */

    var topbarHeight: CGFloat {
        return (view.window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0.0) +
            (self.navigationController?.navigationBar.frame.height ?? 0.0)
    }
}

ধন্যবাদ ধন্যবাদ. কিন্তু এখন, আপনি যে সমস্যার সমাধান করেছেন, ঠিক কীভাবে আমি তা নির্ধারণ করব যে নেভিগেশনকন্ট্রোলার, ওরফে, মোরভিউকন্ট্রোলারটি আমার ট্যাব বার অ্যাপটির জন্য প্রদর্শিত হচ্ছে।

আপনি যা বলতে চাইছেন তা আমি পুরোপুরি পাই না। আপনি কি আরও দেখার চেষ্টা করছেন যে মোরভিউকন্ট্রোলার প্রদর্শিত হচ্ছে? (যদি তা হয় তবে আপনি কী করতে চান?) এবং যদি না হয় তবে আপনি ঠিক কী বলতে চাইছেন তা পরিষ্কার করে বলতে পারেন?
Sum

আমি আপনার প্রশ্নটি আবার পড়েছি, এবং আমি এখনও বুঝতে পারি না আপনি কী করতে চান? ভিউটি উপস্থিত হওয়ার সাথে সাথে আপনি যদি কিছু করতে চান তবে আপনার কোডটি ভিউডআইপিয়ারে inোকানো উচিত। আপনি যদি কিছুটা স্পষ্ট করে থাকেন তবে আপনি কী করতে চান তা নির্ধারণ করা আরও সহজ করবে।
Sum

2
আমি জানি এটি তার জিজ্ঞাসা করা প্রশ্নটির সমাধান করে না, তবে মনে হচ্ছে নেভিগেশনবারটি লুকিয়ে রয়েছে কিনা তা তিনি খুঁজছিলেন। যদি তা হয় তবে তিনি স্ব-নেভিগেশন কন্ট্রোলআর.ইভিগেশন বারহিডেন আশা ব্যবহার করতে পারতেন এটি সম্পূর্ণরূপে কাউকে সহায়তা করে :)
টেলরক্র্যাসি

2
আইওএস 7+ এ আপনার প্রয়োগের উপর নির্ভর করে আপনার 20px স্থিতি দণ্ডটি বিবেচনা করতে হবে
স্লেটার

94

আইফোন-এক্সের সাথে, শীর্ষ বারের উচ্চতা (নেভিগেশন বার + স্ট্যাটাস বার) পরিবর্তন করা হয়েছে (বৃদ্ধি পেয়েছে)।

আপনি শীর্ষ বারের যথাযথ উচ্চতা (উভয় নেভিগেশন বার + স্থিতি দণ্ড) চাইলে এটি চেষ্টা করুন:

হালনাগাদ

আইওএস 13

যেহেতু এতে statusBarFrameঅবহিত করা হয়েছে iOS13আপনি এটি ব্যবহার করতে পারেন:

extension UIViewController {

    /**
     *  Height of status bar + navigation bar (if navigation bar exist)
     */

    var topbarHeight: CGFloat {
        return (view.window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0.0) +
            (self.navigationController?.navigationBar.frame.height ?? 0.0)
    }
}

উদ্দেশ্য গ

CGFloat topbarHeight = ([UIApplication sharedApplication].statusBarFrame.size.height +
       (self.navigationController.navigationBar.frame.size.height ?: 0.0));

সুইফট 4

let topBarHeight = UIApplication.shared.statusBarFrame.size.height +
        (self.navigationController?.navigationBar.frame.height ?? 0.0)

স্বাচ্ছন্দ্যের জন্য, এই ইউআইভিউকন্ট্রোলার এক্সটেনশানটি ব্যবহার করে দেখুন

extension UIViewController {

    /**
     *  Height of status bar + navigation bar (if navigation bar exist)
     */

    var topbarHeight: CGFloat {
        return UIApplication.shared.statusBarFrame.size.height +
            (self.navigationController?.navigationBar.frame.height ?? 0.0)
    }
}

সুইফট 3

let topBarHeight = UIApplication.sharedApplication().statusBarFrame.size.height +
(self.navigationController?.navigationBar.frame.height ?? 0.0)


3
সুইফট 4 উত্তরটি আমার জন্য 0 উচ্চতা ফেরায়।
চেভি দ্য চোরকি

61

সুইফ্ট সংস্করণ:

let navigationBarHeight: CGFloat = self.navigationController!.navigationBar.frame.height

সর্বদা 44 প্রদান করে। ধসে পড়া আকার (44) বা প্রসারিত আকার (বড় শিরোনাম) কীভাবে জানবেন ??? অবশ্যই গতিশীল। (আমি এটির কী ব্যবস্থা নেয় তা আমি জানি)
মার্কাস

6

আপনি কি এই চেষ্টা করেছেন?

let barHeight = self.navigationController?.navigationBar.frame.height ?? 0

5

আইওএস 13 এবং নীচে সমর্থন করুন:

extension UIViewController {

    var topbarHeight: CGFloat {
        if #available(iOS 13.0, *) {
            return (view.window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0.0) +
                (self.navigationController?.navigationBar.frame.height ?? 0.0)
        } else {
            let topBarHeight = UIApplication.shared.statusBarFrame.size.height +
            (self.navigationController?.navigationBar.frame.height ?? 0.0)
            return topBarHeight
        }
    }
}

4
UIImage*image = [UIImage imageNamed:@"logo"];

float targetHeight = self.navigationController.navigationBar.frame.size.height;
float logoRatio = image.size.width / image.size.height;
float targetWidth = targetHeight * logoRatio;

UIImageView*logoView = [[UIImageView alloc] initWithImage:image];
// X or Y position can not be manipulated because autolayout handles positions.
//[logoView setFrame:CGRectMake((self.navigationController.navigationBar.frame.size.width - targetWidth) / 2 , (self.navigationController.navigationBar.frame.size.height - targetHeight) / 2 , targetWidth, targetHeight)];
[logoView setFrame:CGRectMake(0, 0, targetWidth, targetHeight)];
self.navigationItem.titleView = logoView;

// How much you pull out the strings and struts, with autolayout, your image will fill the width on navigation bar. So setting only height and content mode is enough/
[logoView setContentMode:UIViewContentModeScaleAspectFit];

/* Autolayout constraints also can not be manipulated since navigation bar has  immutable constraints
self.navigationItem.titleView.translatesAutoresizingMaskIntoConstraints = false;

NSDictionary*metricsArray = @{@"width":[NSNumber numberWithFloat:targetWidth],@"height":[NSNumber numberWithFloat:targetHeight],@"margin":[NSNumber numberWithFloat:20]};
NSDictionary*viewsArray = @{@"titleView":self.navigationItem.titleView};

[self.navigationItem.titleView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-(>margin=)-H:[titleView(width)]-(>margin=)-|" options:NSLayoutFormatAlignAllCenterX metrics:metricsArray views:viewsArray]];
[self.navigationItem.titleView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[titleView(height)]" options:0 metrics:metricsArray views:viewsArray]];

NSLog(@"%f", self.navigationItem.titleView.width );
*/

সুতরাং আমাদের আসলে যা প্রয়োজন তা হল

UIImage*image = [UIImage imageNamed:@"logo"];
UIImageView*logoView = [[UIImageView alloc] initWithImage:image];
float targetHeight = self.navigationController.navigationBar.frame.size.height;
[logoView setFrame:CGRectMake(0, 0, 0, targetHeight)];
[logoView setContentMode:UIViewContentModeScaleAspectFit];

self.navigationItem.titleView = logoView;

2

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

আমি নেভিগেশন বারটিকে সরাসরি তার তদারকির সাথে সংযুক্ত করেছি, উপরে উল্লিখিত হিসাবে নিরাপদ অঞ্চল বিন্যাস গাইডটি এড়িয়ে চলেছি। এবং স্ট্যাটাস বারের উচ্চতাটি সহজেই ইউআইএ অ্যাপ্লিকেশন থেকে পুনরুদ্ধার করা যেতে পারে তবে ডিফল্ট নেভিগেশন বারের উচ্চতাটি আসলেই একটি ব্যথা-গাধা ...

এটি প্রায় অর্ধেক রাতের জন্য আমাকে আঘাত করেছিল, বেশ কয়েকটি অনুসন্ধান এবং পরীক্ষার মাধ্যমে, অবশেষে আমি অন্য পোস্টের (যদিও আমার সাথে কাজ করছে না) ইঙ্গিতটি পেয়েছি, আপনি আসলে ইউআইভিউ.সাইজথ্যাটফিটস () থেকে উচ্চতা পেতে পারেন, যেমন :

- (void)viewWillLayoutSubviews {
    self.topBarHeightConstraint.constant = [UIApplication sharedApplication].statusBarFrame.size.height;
    self.navBarHeightConstraint.constant = [self.navigationBar sizeThatFits:CGSizeZero].height;

    [super viewWillLayoutSubviews];    
}

অবশেষে, একটি নিখুঁত নেভিগেশন বারটি অন্তর্নির্মিতটির মতো দেখতে একই রকম!


2

আপনি যদি navigationBarকেবল উচ্চতা পেতে চান তবে এটি সহজ:

extension UIViewController{
   var navigationBarHeight: CGFloat {
       return self.navigationController?.navigationBar.frame.height ?? 0.0
   }
}

যাইহোক, যদি আপনার আইফোনের শীর্ষ খাঁজের উচ্চতা প্রয়োজন হয় তবে আপনাকে উচ্চতা পেতে navigationBarএবং এটির statusBarউচ্চতা যুক্ত করতে হবে না , আপনি কেবল তাই কল করতে পারেন safeAreaInsetsযার কারণে বিদ্যমান।

self.view.safeAreaInsets.top

1

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

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

উদাহরণস্বরূপ, একটি ইউআইভিউতে আমার কাছে উপরে থেকে নীচে পর্যন্ত রয়েছে:

ইউআইভিউ - উভয় স্প্রিংস সেট (ডিফল্ট কেস) এবং কোনও স্ট্রুট নেই

UIScrollView - যদি আমি দুটি স্প্রিংস সেট করে রাখি এবং অন্য সমস্ত কিছু (ইউআইভিউয়ের মতো) সাফ করি, তবে ইউআইবুটটন অবিলম্বে এটির উপরে অবস্থিত on আমি যদি সমস্ত কিছু সাফ করি, তবে ইউআইবাটন ঠিক আছে, তবে স্ট্যাটাসবারের নীচে থাকা শীর্ষস্থানটি কেবল শীর্ষ স্তরের সেটিংয়ের পিছনে লুকিয়ে থাকে, ইউআইবাটনটি ট্যাব বারের পিছনে নেমে আসে।

ইউিলাবেল এবং ইউআইএমেজ পরবর্তী উল্লম্বভাবে - শীর্ষ স্ট্রুট সেট, অন্য কোথাও নমনীয়

কেবলমাত্র ইউআইবিউব ভিউ রয়েছে এমন কয়েকজনের জন্য ছবিটি সম্পূর্ণ করতে:

UIWebView - Struts: শীর্ষ, বাম, ডান স্প্রিংস: উভয়

ইউআইবাটন - কিছুই সেট নয়, অর্থাত্ সর্বত্র নমনীয়

যদিও আমার হালকা বাল্ব ম্লান, সেখানে প্রত্যাশা রয়েছে।


শীর্ষস্থানীয় স্ট্রুট সেট করুন এবং ইউআইবিউবভিউয়ের দুটি স্প্রিংস সেট করুন - সমস্যার সমাধান হয়েছে এবং ধন্যবাদ বাছা। প্রকৃতপক্ষে, আমার কেবলমাত্র অবশিষ্ট সমস্যাটি হ'ল সেইগুলিকে অভিশপ্ত @ 2 এক্স ইত্যাদি গ্রাফিক্স ডিজাইন করা। আমি গ্রাফিক কনভার্টারটি খুব সাধারণ উপায়ে ব্যবহার করি এবং এটি ওয়েব পৃষ্ঠার ডিজাইনের জন্য খুব ভাল করে তোলে। তবে এই সমস্ত 30px, 57px স্টাফ - আমি কমপক্ষে আমার জন্য অসচেতন অঞ্চলতে যাচ্ছি।

1

আপনার আপডেটে আমার প্রতিক্রিয়ার শুরু এখানে:

আমার ইউআইবিউব ভিউয়ের সামগ্রীর উচ্চতা কেন ঘোরার সাথে পরিবর্তন হয় না ?.

এটি কি এমন হতে পারে যে আপনার অটো রাইজাইয়ে সব দিকের জন্য অটোরিসাইজিং ম্যাস্ক নেই?

আমি এর জন্য ফিরে আসার আগে আরেকটি পরামর্শ, আপনি কি আপনার প্রয়োজনের জন্য একটি সরঞ্জামদণ্ড ব্যবহার করতে পারেন? এটি সামান্য সহজ, সর্বদা নীচে থাকবে, স্বয়ংক্রিয়ভাবে ঘোরা / অবস্থানগুলি। আপনি ইচ্ছামত এটিকে আড়াল / প্রদর্শন করতে পারেন ইত্যাদি এই জাতীয় জাতীয়: http://cdn.artoftheiphone.com/wp-content/uploads/2009/01/yellow-pages-iphone-app-2.jpg

আপনি হয়ত এই বিকল্পটি দেখেছেন, তবে কেবল এটি এখানে ফেলে দিচ্ছেন।

আরেকটি ধারণা, আপনি সম্ভবত কোন দিকনির্দেশনা থেকে ঘুরছেন তা সনাক্ত করতে পারেন এবং ট্যাব বারের জন্য সামঞ্জস্য করতে প্রোগ্রামটিকে বাটনটি কেবল রেখে দিতে পারেন। (কোড দিয়ে এটি সম্ভব)


এটি মোকাবেলায় প্রায় 2 সপ্তাহ পরে, আমি সিদ্ধান্ত নিয়েছি যে UIButton নীচে UIWebView সাব-ভিউ রেখে "সমস্যা" আরও জটিল করা হয়েছে। সুতরাং, আমি এটি উপরে বোতামটি রেখেছি। একদম সত্যি বলতে, এটিকে ঠিক "ঠিক" দেখাচ্ছে না ... তবে এটি এখন SORT OF এ কাজ করে। নীচে বা উপরে UIWebView শীর্ষ স্ট্রুট এবং ঠিক অনুভূমিক বসন্ত সেট করেছে। বিটিডাব্লু, এটির ইউটিউবভিউর সামগ্রীর উচ্চতা যা ঘোরার সাথে পরিবর্তন হয় না।

0

আমি ব্যবহার করেছি:

let originY: CGFloat = self.navigationController!.navigationBar.frame.maxY

আপনি যদি নেভিগেশন বারের উচ্চতা এবং এর ওয়াই উত্স পেতে চান তবে দুর্দান্ত কাজ করছেন।



0

হ্যান্ডি সুইফট 4 এক্সটেনশন, যদি এটি অন্য কারও জন্য সহায়ক। এমনকি বর্তমান ভিউ কন্ট্রোলার কোনও নেভিগেশন বার প্রদর্শন না করলেও কাজ করে।

import UIKit

extension UINavigationController {
  static public func navBarHeight() -> CGFloat {
    let nVc = UINavigationController(rootViewController: UIViewController(nibName: nil, bundle: nil))
    let navBarHeight = nVc.navigationBar.frame.size.height
    return navBarHeight
  }
}

ব্যবহার:

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