UIDocumentInteractionController tugmasi matnini va fon rangini qanday o'zgartirish mumkin

How to change the background color and text color of done button? Is there a way that I can change the navigationbar color and navigation bar title color and bottom bar color also? Attached screenshot for reference: enter image description here

5
Men biriktirilgan ekran rasmini ko'rmoqdaman. Sizga ko'rinmaydimi? Uni qayta tiklashim kerakmi?
qo'shib qo'ydi muallif Dee, manba
Ekran rasmi qaerda
qo'shib qo'ydi muallif paper1111, manba
Hozir uni ko'rib turibman, hozirgina "imgur kuchga ega"
qo'shib qo'ydi muallif paper1111, manba
@Dee: Siz hali buni hal qildingizmi? Xuddi shu muammo bor. BarTintColor-ni o'rnatdim, lekin u ta'sir qilmaydi.
qo'shib qo'ydi muallif Tony Pham, manba

6 javoblar

Men buni hal qildim. Men uchun juda yaxshi ishlaydigan kod quyidagicha:

func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
    UINavigationBar.appearance().barTintColor = Colors.redColor()
    UINavigationBar.appearance().tintColor = UIColor.white
    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white, NSFontAttributeName: UIFont.systemFont(ofSize: 14, weight: UIFontWeightBold)]
    return self
}
1
qo'shib qo'ydi
Ishlar yaxshi, lekin oldinda bo'lgan narsalarni qaytarishni unutmang! Men buni "viewWillAppear" da oldindan ko'rishni ko'rsatadigan ko'rinishda qilaman.
qo'shib qo'ydi muallif David, manba
AppDelegate.swift ilovasida juda ko'p xususiylashtirish mavjud. Preview oynasida (va barcha subviews) to'g'ri ranglarni olish uchun uni AppDelegate-da o'chirishga to'g'ri keldi: window .tintColor = X va yuqoridagi ro'yxatga qo'shing: UILabel.appearance (). TextColor = CommonColors.appleTint UIButton.appearance ( ) .tintColor = CommonColors.appleTint
qo'shib qo'ydi muallif David, manba
     let QLNavAppearance = UINavigationBar.appearance(whenContainedInInstancesOf: [QLPreviewController.self])
    QLNavAppearance.tintColor = UIColor.red//some
    QLNavAppearance.barTintColor =  UIColor.red//some
    QLNavAppearance.backgroundColor =  UIColor.red//some
1
qo'shib qo'ydi

QLPreviewController UIDocumentInteractionController dasturini amalga oshiruvchi sinf bo'lganiga qaramasdan, bu ozgina hacky, ammo bu kabi narsa eng kichik zo'ravonliksiz echim. UIDocumentInteractionController-ni namoyish qilishdan oldin bajaring

import QuickLook

UIBarButtonItem.appearance(whenContainedInInstancesOf [QLPreviewController.self]).tintColor = UIColor.black
1
qo'shib qo'ydi
Swift 4 uchun: UIBarButtonItem.appearance (whenContainedInInstancesOf: [QLPreviewController.self]) tintColor = UIColor.black Bu oldindan ko'rish uchun ishlaydi, ammo faylni almashganda "OpenInMenu" altbilgisidagi rang rangini qanday o'zgartirish mumkin (oldindan ko'rish rejimida almashish tugmasini bosish ko'rinish)? DocController.presentOpenInMenu bilan bir xil.
qo'shib qo'ydi muallif David, manba
Bu, albatta, ishlagan. Rahmat.
qo'shib qo'ydi muallif NaveenReddy, manba

Oynaning rang rangini vaqtincha o'zgartirishingiz mumkin.

func presentDocument() {
    //present the controller here
    self.appDelegate.window.tintColor = UIColor.red
}

So'ng keyinroq uni o'zgartiring:

func documentInteractionControllerDidEndPreview(documentInteractionController) { //replace parameter with your uidocumentviewinteractioncontroller
    self.appDelegate.window.tintColor = UIColor.white
}
0
qo'shib qo'ydi

@Dee. O'ylaymanki, bu qismni sizning boshqa savolingizdan so'radingiz. Bunday holatda siz oldindan ko'rishni boshqarish vositasini ko'rsatolmadingiz. Bu savolda taklif qilingan javob "delegatsiya" usulidan "o'zini" qaytarishdir. Agar siz buni to'g'ri amalga oshirsangiz, sizning dastlabki ko'rishingiz ota-ona tekshirgichidan foydalangan holda bir xil navigatsiya paneli rangidan foydalanadi. UIDocumentInteractionControllerni ba'zi ViewControllerdan to'g'ridan-to'g'ri ochgan bo'lsangiz UIDocumentInteractionController uning yuqori ko'rinishiniControllerning navigatsiya paneli rangini ishlatadi. Bajar-i tugma rangini o'zgartirishga yordam berishi mumkin

0
qo'shib qo'ydi
Endi navigatsiya tugmachasining nomi va matnini va fon rangini o'zgartira olaman. lekin pastki asboblar paneli rangi ishlamaydi. Iltimos, bu bilan menga yordam bera olasizmi?
qo'shib qo'ydi muallif Dee, manba
@Shu sarlavhasi tugmachasining nomi va matnini va fon rangini o'zgartira olmayapman. Qanday qilib buni qildingiz?
qo'shib qo'ydi muallif Saurabh Shukla, manba

Bar rangini o'zgartirish uchun menda bir narsa bor:

let allNavigationBar = UINavigationBar.appearance()
allNavigationBar.barTintColor = UIColor.red //change the bar background color
allNavigationBar.tintColor = UIColor.black//change the Done button's tintColor

let alloolbar = UIToolbar.appearance()
allToolbar.barTintColor = UIColor.red //dones't work, try backgroundImage
allToolbar.backgroundColor = UIColor.blue//dones't work
allToolbar.tintColor = UIColor.brown//change the toolbar's item tint color

ammo bu usul katta ta'sirga ega, barcha UINavigationBar va UIToolBar bu o'zgarishlarni amalga oshiradi.

Umid qilamanki, boshqa hech kim yaxshi yechim topa olmaydi.

0
qo'shib qo'ydi