সুইফটে নেভিগেশন বারের রঙ পরিবর্তন করা


240

ব্যবহারকারীকে পুরো অ্যাপ্লিকেশনের জন্য রঙিন থিম চয়ন করার অনুমতি দেওয়ার জন্য আমি একটি পিকার ভিউ ব্যবহার করছি।

আমি নেভিগেশন বার, পটভূমি এবং সম্ভবত ট্যাব বারের রঙ পরিবর্তন করার পরিকল্পনা করছি (যদি এটি সম্ভব হয়)।

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

পিকার ভিউ সেট আপ করা হয়েছে, আমি কেবল ইউআই রঙ পরিবর্তন করার জন্য কোডটি সন্ধান করছি।

উত্তর:


526

ন্যাভিগেশন বার:

navigationController?.navigationBar.barTintColor = UIColor.green

গ্রিন কালারকে আপনার ইউআইসিওলারের যা-ই চাই তা প্রতিস্থাপন করুন, আপনি যদি চান তবে আপনি একটি আরজিবিও ব্যবহার করতে পারেন।

নেভিগেশন বার পাঠ্য:

navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.orange]

আপনার পছন্দ মতো রঙের সাথে কমলা রঙটি প্রতিস্থাপন করুন।

ট্যাব বার:

tabBarController?.tabBar.barTintColor = UIColor.brown

ট্যাব বার পাঠ্য:

tabBarController?.tabBar.tintColor = UIColor.yellow

শেষ দুটিতে, আপনার পছন্দের রঙের সাথে বাদামী রঙ এবং হলুদ রঙিন প্রতিস্থাপন করুন।


অনেক ধন্যবাদ! আমি যা চেষ্টা করেছিলাম তা থেকে আমি খুব বেশি দূরে ছিলাম না তবে আমার কাছে সঠিক ক্রমে জিনিস ছিল না।
ব্যবহারকারী3746428

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

2
নতুন এক্সকোড বিটাতে আপডেট করার পরে, শিরোনাম পাঠ্যের রঙ সেট করে আর কাজ করে না। শিরোনাম পাঠ্যপরিচয় সুইফটে উপলভ্য নয়। কোন ধারনা?
ব্যবহারকারী3746428

1
আপনি কি একটি নতুন প্রশ্ন খুলতে এবং এটির সাথে লিঙ্ক করতে পারেন? চ্যাটটি এই জাতীয় কোনও কিছুর জন্য সেরা জায়গা নয়।
ট্রাম্পিটার

3
আমি দেখতে পেয়েছি যে এটি আমাকে এনএসফোরগ্রাউন্ড কালারঅ্যাট্রিবিউটনেমটি অ্যাট্রিবিউট নাম হিসাবে ব্যবহার করছে, তবে অন্যথায় দুর্দান্ত কাজ করছে।
জ্যাক হল

90

এখানে কিছু খুব প্রাথমিক চেহারা কাস্টমাইজেশন যা আপনি অ্যাপ্লিকেশন প্রশস্ত প্রয়োগ করতে পারেন:

UINavigationBar.appearance().backgroundColor = UIColor.greenColor()
UIBarButtonItem.appearance().tintColor = UIColor.magentaColor()
//Since iOS 7.0 UITextAttributeTextColor was replaced by NSForegroundColorAttributeName
UINavigationBar.appearance().titleTextAttributes = [UITextAttributeTextColor: UIColor.blueColor()]
UITabBar.appearance().backgroundColor = UIColor.yellowColor();

UIAppearanceসুইফটে API সম্পর্কে আরও আপনি এখানে পড়তে পারেন: https://developer.apple.com/docamentation/uikit/uiappearance


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

4
এনটিয়ার অ্যাপ্লিকেশনটিতে ছনগুলি প্রতিফলিত করতে, AppDelegate.swift Func অ্যাপ্লিকেশন (অ্যাপ্লিকেশন: UIApplication, didFinishLaunchingWithOptions লঞ্চঅ্যাপশনস: [এনএসওজেক্ট: যেকোনও অবজেক্ট]?) -> বুল {// উপরের কোড}
বদরিনাথ

7
ব্যাকগ্রাউন্ড কালারের পরিবর্তে বারটিন্টকলার ব্যবহার করুন। ইউআইএনএভিগেশনবার.অ্যাপিয়ারেন্স ()। বারটিন্ট কালার = ইউআইসিওলর.g्रीन কলার ()
মাইকেল পিটারসন

@ কিনলে আমি কিছুটা বিভ্রান্ত হয়ে পড়েছি ... ইউআইএনএভিগেশনবারের ব্যাকগ্রাউন্ড রঙটি এপিআইয়ের উপস্থিতির মাধ্যমে কেন পুরোপুরি তার রঙ পরিবর্তন করে না? আমি ব্যাকগ্রাউন্ডের রঙটি
নীলতে

59

সুইফট 3, 4, 4.2, 5+ এর জন্য আপডেট হয়েছে

// setup navBar.....
UINavigationBar.appearance().barTintColor = .black
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
UINavigationBar.appearance().isTranslucent = false

সুইফট 4

UINavigationBar.appearance().barTintColor = .black
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
UINavigationBar.appearance().isTranslucent = false

সুইফট 4.2, 5+

UINavigationBar.appearance().barTintColor = .black
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
UINavigationBar.appearance().isTranslucent = false

এছাড়াও এখানে চেক করতে পারেন: https://github.com/hasnine/iOSUtilitiesSource


সুইফট ৪.২: এনএসএট্রিবিউটেড স্ট্রিং.কি.ফরফগ্রাউন্ড কালার
কসরা বাবেই

বার্টিন্টক্লোরের পরিবর্তে সাদা রঙে রঙিন রঙ নির্ধারণ করা মূল রঙটি দেখায়। গ্রেট!
নিককডার

@ নিককোডার এটি প্রশংসা করেন। :) আমার লাইবটিও দেখুন
জামিল হাসনাইন তামিম

52
UINavigationBar.appearance().barTintColor = UIColor(red: 46.0/255.0, green: 14.0/255.0, blue: 74.0/255.0, alpha: 1.0)
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()]

আপনার কোডটিতে এই লাইনটি কেবল পেস্ট করুন didFinishLaunchingWithOptions


আমি আরজিবি দিয়ে এটি চেষ্টা করেছি এবং আমি যেখানেই রেখেছি তা কার্যকর হয় না।
নাথান ম্যাককাস্কলে

@ নাথানমিস্কাস্কলে আপনার আরজিবিটি পরীক্ষা করুন, এটি "xx / 250.0f" ফর্মেটে থাকা উচিত।
মোহিত তোমার

DidFinishLaunchingWithOptions এ ব্যবহৃত এবং পুরোপুরি কাজ করে worked ভিউডিডল্ডের অভ্যন্তরে সঠিকভাবে কাজ করবেন না।
তৌহিদ

26

অ্যাপডেলিগেটের মধ্যে , এটি বিশ্বব্যাপী নাভবারের ফর্ম্যাটকে পরিবর্তন করেছে এবং নীচে লাইন / সীমানা (যা বেশিরভাগ লোকের জন্য একটি সমস্যা অঞ্চল) সরিয়ে দেয় যা আমি আপনাকে এবং অন্যরা যা খুঁজছি তা আপনাকে দিতে:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarPosition: UIBarPosition.Any, barMetrics: UIBarMetrics.Default)
    UINavigationBar.appearance().shadowImage = UIImage()
    UINavigationBar.appearance().tintColor = UIColor.whiteColor()
    UINavigationBar.appearance().barTintColor = Style.SELECTED_COLOR
    UINavigationBar.appearance().translucent = false
    UINavigationBar.appearance().clipsToBounds = false
    UINavigationBar.appearance().backgroundColor = Style.SELECTED_COLOR
    UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : (UIFont(name: "FONT NAME", size: 18))!, NSForegroundColorAttributeName: UIColor.whiteColor()] }

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

এর সুন্দর জিনিসটি হ'ল আপনি প্রতিটি রঙের জন্য আপনার পুরো অ্যাপ্লিকেশনটিতে একটি রেফারেন্স ব্যবহার করতে পারেন এবং এটি ব্যবহারকারীর নির্বাচিত "থিম" এর উপর ভিত্তি করে আপডেট হবে এবং এটির ছাড়াই থিম 1 () এর ডিফল্ট হবে:

import Foundation
import UIKit

struct Style {


static let availableThemes = ["Theme 1","Theme 2","Theme 3"]

static func loadTheme(){
    let defaults = NSUserDefaults.standardUserDefaults()
    if let name = defaults.stringForKey("Theme"){
        // Select the Theme
        if name == availableThemes[0]   { theme1()  }
        if name == availableThemes[1]   { theme2()  }
        if name == availableThemes[2]   { theme3()  }
    }else{
        defaults.setObject(availableThemes[0], forKey: "Theme")
        theme1()
    }
}

 // Colors specific to theme - can include multiple colours here for each one
static func theme1(){
   static var SELECTED_COLOR = UIColor(red:70/255, green: 38/255, blue: 92/255, alpha: 1) }

static func theme2(){
    static var SELECTED_COLOR = UIColor(red:255/255, green: 255/255, blue: 255/255, alpha: 1) }

static func theme3(){
    static var SELECTED_COLOR = UIColor(red:90/255, green: 50/255, blue: 120/255, alpha: 1) } ...

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

1
আপনাকে অনেক ধন্যবাদ, আমি এখানে প্রতিটি উত্তরের চেষ্টা করেছি এবং তাদের কেউই আপনার ব্যতীত কাজ করেনি: ডি
রোনাক শাহ

19

স্টোরিবোর্ডে এটি করার জন্য (ইন্টারফেস বিল্ডার ইন্সপেক্টর)

এর সাহায্যে IBDesignable, আমরা ইন্টারফেস নির্মাতা পরিদর্শকের জন্য আরও বিকল্প যুক্ত করতে UINavigationControllerএবং তাদের স্টোরিবোর্ডে টুইঙ্ক করতে পারি। প্রথমে আপনার প্রকল্পে নিম্নলিখিত কোড যুক্ত করুন।

@IBDesignable extension UINavigationController {
    @IBInspectable var barTintColor: UIColor? {
        set {
            guard let uiColor = newValue else { return }
            navigationBar.barTintColor = uiColor
        }
        get {
            guard let color = navigationBar.barTintColor else { return nil }
            return color
        }
    }
}

তারপরে স্টোরিবোর্ডে নেভিগেশন কন্ট্রোলারের জন্য বৈশিষ্ট্যগুলি কেবল সেট করুন।

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

স্টোরিবোর্ড থেকে নেভিগেশন বারের পাঠ্যের রঙ পরিচালনা করতে এই পদ্ধতির ব্যবহার করা যেতে পারে:

@IBInspectable var barTextColor: UIColor? {
  set {
    guard let uiColor = newValue else {return}
    navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: uiColor]
  }
  get {
    guard let textAttributes = navigationBar.titleTextAttributes else { return nil }
    return textAttributes[NSAttributedStringKey.foregroundColor] as? UIColor
  }
}

18

সুইফট 4:

অ্যাপ্লিকেশন পর্যায়ে নেভিগেশন বারের উপস্থিতি পরিবর্তন করার জন্য নিখুঁতভাবে কাজ করছে কোড।

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

// MARK: Navigation Bar Customisation

// To change background colour.
UINavigationBar.appearance().barTintColor = .init(red: 23.0/255, green: 197.0/255, blue: 157.0/255, alpha: 1.0)

// To change colour of tappable items.
UINavigationBar.appearance().tintColor = .white

// To apply textAttributes to title i.e. colour, font etc.
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor : UIColor.white,
                                                    .font : UIFont.init(name: "AvenirNext-DemiBold", size: 22.0)!]
// To control navigation bar's translucency.
UINavigationBar.appearance().isTranslucent = false

শুভ কোডিং!



15

সুইফট 4 - স্মুথ ট্রানজিশন (সেরা সমাধান):

যদি আপনি কোনও নেভিগেশন নিয়ন্ত্রক থেকে পিছনে চলে আসছেন এবং আপনি যে ন্যাভিগেশন নিয়ন্ত্রকটি আপনাকে ব্যবহার করতে চান তা থেকে আলাদা করা রঙ সেট করতে হবে

override func willMove(toParentViewController parent: UIViewController?) {
    navigationController?.navigationBar.barTintColor = .white
    navigationController?.navigationBar.tintColor = Constants.AppColor
}

পরিবর্তে এটি আরও ভাল ভিউ-এপ্লাইয়ারে রাখার পরিবর্তে আরও পরিষ্কার হয়।

সুইফট 4.2

override func willMove(toParent parent: UIViewController?) {
    navigationController?.navigationBar.barTintColor = UIColor.black
    navigationController?.navigationBar.tintColor = UIColor.black
}

11

ইন সুইফট 4

আপনি নেভিগেশন বারের রঙ পরিবর্তন করতে পারেন। এই কোড কোড স্নিপেট ব্যবহার করুনviewDidLoad()

নেভিগেশন বারের রঙ

self.navigationController?.navigationBar.barTintColor = UIColor.white

নেভিগেশন বার পাঠ্যের রঙ

self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.purple]

জন্য আইওএস 11 লার্জ শিরোনাম নেভিগেশন বার , আপনি ব্যবহার করতে হবে largeTitleTextAttributesসম্পত্তি

self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.purple]

9

appearance()ফাংশন সর্বদা আমার জন্য কাজ করে। সুতরাং আমি একটি এনসি অবজেক্ট তৈরি এবং এর বৈশিষ্ট্যগুলি পরিবর্তন করতে পছন্দ করি।

var navBarColor = navigationController!.navigationBar
navBarColor.barTintColor =
    UIColor(red:  255/255.0, green: 0/255.0, blue: 0/255.0, alpha: 100.0/100.0)
navBarColor.titleTextAttributes =
    [NSForegroundColorAttributeName: UIColor.whiteColor()]

এছাড়াও যদি আপনি কেবল পাঠ্যের পরিবর্তে কোনও চিত্র যুক্ত করতে চান তবে এটিও কার্যকর হয়

var imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 70, height: 70))
imageView.contentMode = .ScaleAspectFit

var image = UIImage(named: "logo")
imageView.image = image
navigationItem.titleView = imageView

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


4

আইওএস 8 (দ্রুত)

let font: UIFont = UIFont(name: "fontName", size: 17)   
let color = UIColor.backColor()
self.navigationController?.navigationBar.topItem?.backBarButtonItem?.setTitleTextAttributes([NSFontAttributeName: font,NSForegroundColorAttributeName: color], forState: .Normal)

4

আপনার যদি কাস্টমাইজড নেভিগেশন কন্ট্রোলার থাকে তবে আপনি উপরের কোড স্নিপেট ব্যবহার করতে পারেন। সুতরাং আমার ক্ষেত্রে, আমি নিম্নলিখিত কোড টুকরা হিসাবে ব্যবহার করেছি।

সুইফট 3.0, এক্সকোড 8.1 সংস্করণ

navigationController.navigationBar.barTintColor = UIColor.green

নেভিগেশন বার পাঠ্য:

navigationController.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.orange]

এটি খুব সহায়ক আলোচনা।



3

সুইফ্ট 2-এ

নেভিগেশন বারে রঙ পরিবর্তন করার জন্য,

navigationController?.navigationBar.barTintColor = UIColor.whiteColor()

আইটেম নেভিগেশন বারে রঙ পরিবর্তন করার জন্য,

navigationController?.navigationBar.tintColor = UIColor.blueColor()

অথবা

navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.blueColor()]

3

সুইফট 3

UINavigationBar.appearance().barTintColor = UIColor(colorLiteralRed: 51/255, green: 90/255, blue: 149/255, alpha: 1)

এটি আপনার নেভিগেশন বারের রঙটিকে ফেসবুক বারের রঙের মতো সেট করবে :)


3

সুইফট 3 এবং সুইফট 4 সামঞ্জস্যপূর্ণ এক্সকোড 9

সাধারণ নেভিগেশন বারগুলির জন্য একটি ক্লাস করার জন্য এটির জন্য আরও ভাল সমাধান

আমার কাছে 5 টি নিয়ামক রয়েছে এবং প্রতিটি নিয়ামক শিরোনাম কমলা রঙে পরিবর্তিত হয়। প্রতিটি কন্ট্রোলারে যেমন 5 টি নেভিগেশন কন্ট্রোলার রয়েছে তাই আমাকে ইন্সপেক্টর বা কোড থেকে প্রতিটি রঙ পরিবর্তন করতে হয়েছিল।

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

import UIKit

   class NabigationBar: UINavigationBar {
      required init?(coder aDecoder: NSCoder) {
       super.init(coder: aDecoder)
    commonFeatures()
 }

   func commonFeatures() {

    self.backgroundColor = UIColor.white;
      UINavigationBar.appearance().titleTextAttributes =     [NSAttributedStringKey.foregroundColor:ColorConstants.orangeTextColor]

 }


  }

2

আইওএস 10 সুইফট 3.0

আপনি দ্রুত অবকাঠামো তারপর আমাদের ব্যবহার করতে কিছু মনে না করেন UINeraida পরিবর্তন নেভিগেশন পটভূমি UIColorবা HexColorবাUIImage পরিবর্তন গৌণ ব্যাক বোতাম টেক্সট প্রোগ্রামেটিক্যালি, সম্পূর্ণ forground পাঠ্যের রঙ পরিবর্তন করুন।

জন্য UINavigationBar

    neraida.navigation.background.color.hexColor("54ad00", isTranslucent: false, viewController: self)
    
    //Change navigation title, backbutton colour
    
    neraida.navigation.foreground.color.uiColor(UIColor.white, viewController: self)
    
    //Change navigation back button title programmatically
    
    neraida.navigation.foreground.backButtonTitle("Custom Title", ViewController: self)
    
    //Apply Background Image to the UINavigationBar
    
    neraida.navigation.background.image("background", edge: (0,0,0,0), barMetrics: .default, isTranslucent: false, viewController: self)

2

সুইফট 3

আপনি ব্যবহার করতে পারেন এমন সহজ একটি লাইনার ViewDidLoad()

//Change Color
    self.navigationController?.navigationBar.barTintColor = UIColor.red
//Change Text Color
    self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]

2

এই সংস্করণটি নেভিগেশন বারের নীচে 1px ছায়া রেখাও সরিয়ে দেয়:

সুইফট 5: এটি আপনার অ্যাপডেলিগেটে ফিনিশলঞ্চিং উইথঅপশনগুলিতে রাখুন

UINavigationBar.appearance().barTintColor = UIColor.black
UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .any, barMetrics: .default)
UINavigationBar.appearance().shadowImage = UIImage()

1

আমার করতেই হতো

UINavigationBar.appearance().tintColor = UIColor.whiteColor()
UINavigationBar.appearance().barStyle = .Black
UINavigationBar.appearance().backgroundColor = UIColor.blueColor()

অন্যথায় পটভূমির রঙ পরিবর্তন হবে না


1

পছন্দসই রঙ পেতে প্রথমে নেভিগেশনবারের ট্রান্সলুসেন্ট সম্পত্তিটি মিথ্যাতে সেট করুন। তারপরে নেভিগেশনবারের রঙটি এভাবে পরিবর্তন করুন:

@IBOutlet var NavigationBar: UINavigationBar!

NavigationBar.isTranslucent = false
NavigationBar.barTintColor = UIColor (red: 117/255, green: 23/255, blue: 49/255, alpha: 1.0)

1

সাধারণের জন্য বাটন স্টেটটি সেট করা নিশ্চিত করুন

extension UINavigationBar {

    func makeContent(color: UIColor) {
        let attributes: [NSAttributedString.Key: Any]? = [.foregroundColor: color]

        self.titleTextAttributes = attributes
        self.topItem?.leftBarButtonItem?.setTitleTextAttributes(attributes, for: .normal)
        self.topItem?.rightBarButtonItem?.setTitleTextAttributes(attributes, for: .normal)
    }
}

পিএস আইওএস 12, এক্সকোড 10.1


1
ধন্যবাদ. আমি এই topItemসমাধানের জন্য কয়েক ঘন্টা অনুসন্ধান করে যাচ্ছি । অ্যাপল কীভাবে নেভিগেশনে শৈলী প্রয়োগ করা হয় সে বিষয়ে পরিবর্তনগুলি চালিয়ে যাওয়া সংখ্যাকে হতাশ করে।
অ্যাপ দেব গাই

1

কেবল এই এক্সটেনশানটিতে কল করুন এবং রঙটি পাস করুন এটি স্বয়ংক্রিয়ভাবে এনএভি বারের রঙ পরিবর্তন করবে

extension UINavigationController {

     func setNavigationBarColor(color : UIColor){
            self.navigationBar.barTintColor = color
        }
    }

দ্যলোড লোডে বা ভিউতে কল উপস্থিত হবে

স্ব.নিভিশনকন্ট্রোলার?। সেট ন্যাভিগেশন বারকালার কালার (রঙ: <# টি ## ইউআইক্লোর #>)


1

এটি অ্যাপ্লিকেশনটিতে চেষ্টা করুন:

//MARK:- ~~~~~~~~~~setupApplicationUIAppearance Method
func setupApplicationUIAppearance() {

    UIApplication.shared.statusBarView?.backgroundColor = UIColor.clear

    var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }

    UINavigationBar.appearance().tintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    UINavigationBar.appearance().barTintColor =  UIColor.white
    UINavigationBar.appearance().isTranslucent = false

    let attributes: [NSAttributedString.Key: AnyObject]

    if DeviceType.IS_IPAD{
        attributes = [
            NSAttributedString.Key.foregroundColor: UIColor.white,
            NSAttributedString.Key.font: UIFont(name: "HelveticaNeue", size: 30)
            ] as [NSAttributedString.Key : AnyObject]
    }else{
        attributes = [
            NSAttributedString.Key.foregroundColor: UIColor.white
        ]
    }
    UINavigationBar.appearance().titleTextAttributes = attributes
}

আইওএস 13

func setupNavigationBar() {
    //        if #available(iOS 13, *) {
    //            let window = UIApplication.shared.windows.filter {$0.isKeyWindow}.first
    //            let statusBar = UIView(frame: window?.windowScene?.statusBarManager?.statusBarFrame ?? CGRect.zero)
    //            statusBar.backgroundColor = #colorLiteral(red: 0.2784313725, green: 0.4549019608, blue: 0.5921568627, alpha: 1) //UIColor.init(hexString: "#002856")
    //            //statusBar.tintColor = UIColor.init(hexString: "#002856")
    //            window?.addSubview(statusBar)
    //            UINavigationBar.appearance().tintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    //            UINavigationBar.appearance().barTintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    //            UINavigationBar.appearance().isTranslucent = false
    //            UINavigationBar.appearance().backgroundColor = #colorLiteral(red: 0.2784313725, green: 0.4549019608, blue: 0.5921568627, alpha: 1)
    //            UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]
    //        }
    //        else
    //        {
    UIApplication.shared.statusBarView?.backgroundColor = #colorLiteral(red: 0.2784313725, green: 0.4549019608, blue: 0.5921568627, alpha: 1)
    UINavigationBar.appearance().tintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    UINavigationBar.appearance().barTintColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    UINavigationBar.appearance().isTranslucent = false
    UINavigationBar.appearance().backgroundColor = #colorLiteral(red: 0.2784313725, green: 0.4549019608, blue: 0.5921568627, alpha: 1)
    UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]
    //        }
}

এক্সটেনশানগুলি

extension UIApplication {

var statusBarView: UIView? {
    if responds(to: Selector(("statusBar"))) {
        return value(forKey: "statusBar") as? UIView
    }
    return nil
}}

1

আমি তাদের জন্য এটি লিখছি যেগুলির সমাধানগুলির সাথে এখনও সমস্যা আছে।

আমি এক্সকোড সংস্করণ 11.4 (11E146) ব্যবহার করছি। আমার জন্য যে কাজ করছে সে হ'ল:

navigationController?.navigationBar.barTintColor = UIColor.white
navigationController?.navigationBar.tintColor = UIColor.black

বাট !, যদি আপনি স্টোরবোর্ডে বারটিন্ট কালার সেট করেন "ডিফল্ট" এর চেয়ে অন্য কোনও মানতে কোডের এই 2 টি লাইনের কোনও প্রভাব থাকবে না।

সুতরাং, সাবধান থাকুন এবং স্টোরিবোর্ডে ডিফল্ট বারটিন্ট কালার-এ ফিরে যান। ওহ অ্যাপল ...


ডিফল্ট রঙিন রঙ পরিবর্তিত হওয়া সত্ত্বেও একই সমস্যা :(
marika.daboja

@ marika.daboja স্টোরিবোর্ডে আপনার সমস্ত নেভিগেশন কন্ট্রোলার ডিফল্ট রঙে সেট করা আছে?
টমাস কর্ডোবা

হাই, আমার কাছে কেবল 1 নেভিগেশন কন্ট্রোলার রয়েছে (প্লাস 2 টেবিল ভিউ কন্ট্রোলার)। নেভিগেশন কন্ট্রোলার বার টিন্ট রঙটি 'ডিফল্ট' তে সেট করা আছে। কোডটি আমাকে এই রঙটি আপডেট করতে হবে বলে মনে হচ্ছে এটির কোনও প্রভাব নেই।
মেরিকা.ডাবোজা

@ মেরিকা.ডাবোজা আপনাকে নিশ্চিত করুন যে ন্যাভিগেশনকন্ট্রোলারটি শুন্য নয়। এবং আপনি কোডের এই লাইনগুলিকে ভিডডোড ()
টমাস কর্ডোবা

0

ফিনিশলঞ্চিং উইথঅপশন ফাংশনটির ভিতরে আপনার অ্যাপডেলিগেটে এই লাইনগুলি যুক্ত করুন:

এই লাইনটি আপনার নেভিগেশন বারের পটভূমির জন্য।

UINavigationBar.appearance().barTintColor = .orange

এই লাইনটি যদি আপনার ট্রান্সলুসেন্টকে মিথ্যা না হয় তবে এটি নেভিগেশনে সাদা রঙ প্রদর্শন করবে।

UINavigationBar.appearance().tintColor = .white

এই রেখাটি আপনার পাঠ্য এবং নেভিগেশন বারে আইকনগুলির জন্য

UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: Styles.textFirstColor]

আপনার নেভিগেশন বারে সমস্ত কিছু নেমে আসার জন্য এই লাইনটি line

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