Szukaj…


Utwórz instancję

„Pasek kart” jest często spotykany w większości aplikacji na iOS i służy do prezentacji różnych widoków na każdej karcie.

Aby utworzyć kontroler paska kart za pomocą narzędzia do tworzenia interfejsów, przeciągnij kontroler paska kart z Biblioteki obiektów do obszaru roboczego.

kontroler paska kart

Domyślnie kontroler paska kart ma dwa widoki. Aby dodać dodatkowe widoki, kontroluj przeciąganie z kontrolera paska kart do nowego widoku i wybierz „kontrolery widoku” z rozwijanego menu.

pasek kart z widokami

Zmiana tytułu i ikony paska kart

Korzystanie z planszy opowieści:

Wybierz element paska kart z odpowiedniego kontrolera widoku i przejdź do inspektora atrybutów

Jeśli chcesz mieć wbudowaną ikonę i tytuł, ustaw „Element systemowy” na odpowiednią wartość.

W przypadku niestandardowej ikony dodaj wymagane obrazy do folderu zasobów i ustaw „Element systemowy” z wcześniejszego na „niestandardowy”.

Teraz ustaw ikonę, która będzie wyświetlana, gdy karta zostanie wybrana z menu rozwijanego „wybrany obraz”, a domyślna ikona karty z menu rozwijanego „obraz”. Dodaj odpowiedni tytuł w polu „tytuł”.

Pasek zakładek Element Atrybuty Inspektor

Programowo:

W metodzie viewDidLoad() kontrolera widoku dodaj następujący kod:

Cel C:

self.title = @"item";

self.tabBarItem.image = [UIImage imageNamed:@"item"];
self.tabBarItem.selectedImage = [UIImage imageNamed:@"item_selected"];

Szybki:

self.title = "item"
self.tabBarItem.image = UIImage(named: "item")
self.tabBarItem.selectedImage = UIImage(named: "item_selected")

Kontroler nawigacji z TabBar

Kontroler nawigacji można osadzić w każdej zakładce za pomocą własnej serii ujęć. Może być tak jak na zrzucie ekranu.

Aby dodać kontroler nawigacji do kontrolera widoku łączącego się z kontrolerem paska kart, oto przepływ

  • Wybierz kontroler widoku, do którego musimy dodać kontroler nawigacji. Tutaj niech będzie to kontroler widoku wyszukiwania jako ekran wyboru.
  • Z menu Edytora Xcode wybierz opcję Osadź w -> Opcja Nawigacji kontrolera

wprowadź opis zdjęcia tutaj

Dostosowywanie koloru paska kart

[[UITabBar appearance] setTintColor:[UIColor whiteColor]];
[[UITabBar appearance] setBarTintColor:[UIColor tabBarBackgroundColor]];
[[UITabBar appearance] setBackgroundColor:[UIColor tabBarInactiveColor]];
[[UINavigationBar appearance] setBarTintColor:[UIColor appBlueColor]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

UITabBarController z niestandardowym wyborem kolorów

Budowanie UITabBarController w Swift 3 Zmień kolor obrazu i tytuł zgodnie z wyborem, zmieniając wybrany kolor zakładki.

import UIKit

class TabbarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.navigationController?.isNavigationBarHidden = true
        
        UITabBar.appearance().tintColor = UIColor.purple
        
        // set red as selected background color
        let numberOfItems = CGFloat(tabBar.items!.count)
        let tabBarItemSize = CGSize(width: tabBar.frame.width / numberOfItems, height: tabBar.frame.height)
        tabBar.selectionIndicatorImage = UIImage.imageWithColor(UIColor.lightText.withAlphaComponent(0.5), size: tabBarItemSize).resizableImage(withCapInsets: UIEdgeInsets.zero)
        
        // remove default border
        tabBar.frame.size.width = self.view.frame.width + 4
        tabBar.frame.origin.x = -2
        
    }
    
    override func viewWillAppear(_ animated: Bool) {
        // For Images
        let firstViewController:UIViewController = NotificationVC()
        // The following statement is what you need
        let customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "notification@2x")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal), selectedImage: UIImage(named: "notification_sel@2x"))
        firstViewController.tabBarItem = customTabBarItem
        
        for item in self.tabBar.items! {
            let unselectedItem = [NSForegroundColorAttributeName: UIColor.white]
            let selectedItem = [NSForegroundColorAttributeName: UIColor.purple]
            
            item.setTitleTextAttributes(unselectedItem, for: .normal)
            item.setTitleTextAttributes(selectedItem, for: .selected)
        }
    }

}


extension UIImage {
    class func imageWithColor(_ color: UIColor, size: CGSize) -> UIImage {
        let rect: CGRect = CGRect(origin: CGPoint(x: 0,y :0), size: CGSize(width: size.width, height: size.height))
        UIGraphicsBeginImageContextWithOptions(size, false, 0)
        color.setFill()
        UIRectFill(rect)
        let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return image
    }
    
}

Wybieranie obrazu dla paska kart i ustaw tutaj tytuł karty

utwórz kartę niestandardową

Wybór zakładki

Wybierz inną kartę

wprowadź opis zdjęcia tutaj

Utwórz kontroler paska kart programowo bez Storyboard

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    
    var firstTabNavigationController : UINavigationController!
    var secondTabNavigationControoller : UINavigationController!
    var thirdTabNavigationController : UINavigationController!
    var fourthTabNavigationControoller : UINavigationController!
    var fifthTabNavigationController : UINavigationController!
    


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        Fabric.with([Crashlytics.self])
        
       window = UIWindow(frame: UIScreen.main.bounds)
        
        
        window?.backgroundColor = UIColor.black
            
        
        let tabBarController = UITabBarController()
        
        firstTabNavigationController = UINavigationController.init(rootViewController: FirstViewController())
        secondTabNavigationControoller = UINavigationController.init(rootViewController: SecondViewController())
        thirdTabNavigationController = UINavigationController.init(rootViewController: ThirdViewController())
        fourthTabNavigationControoller = UINavigationController.init(rootViewController: FourthViewController())
        fifthTabNavigationController = UINavigationController.init(rootViewController: FifthViewController())
        
        tabBarController.viewControllers = [firstTabNavigationController, secondTabNavigationControoller, thirdTabNavigationController, fourthTabNavigationControoller, fifthTabNavigationController]
        
        
        let item1 = UITabBarItem(title: "Home", image: UIImage(named: "ico-home"), tag: 0)
        let item2 = UITabBarItem(title: "Contest", image:  UIImage(named: "ico-contest"), tag: 1)
        let item3 = UITabBarItem(title: "Post a Picture", image:  UIImage(named: "ico-photo"), tag: 2)
        let item4 = UITabBarItem(title: "Prizes", image:  UIImage(named: "ico-prizes"), tag: 3)
        let item5 = UITabBarItem(title: "Profile", image:  UIImage(named: "ico-profile"), tag: 4)

        firstTabNavigationController.tabBarItem = item1
        secondTabNavigationControoller.tabBarItem = item2
        thirdTabNavigationController.tabBarItem = item3
        fourthTabNavigationControoller.tabBarItem = item4
        fifthTabNavigationController.tabBarItem = item5
                
        UITabBar.appearance().tintColor = UIColor(red: 0/255.0, green: 146/255.0, blue: 248/255.0, alpha: 1.0)
        
        self.window?.rootViewController = tabBarController
        
        window?.makeKeyAndVisible()

        return true
    }


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow