簡體   English   中英

UIBarButtonItem偏移量?

[英]UIBarButtonItem Offset?

我試圖在我的應用程序中偏移UIBarButtonItems,我需要它們稍微偏移,因為我用於導航欄的圖像所以它們都正確排列。 我設法做到這樣:

[[UINavigationBar appearance] setTitleVerticalPositionAdjustment:-3 forBarMetrics:UIBarMetricsDefault];
    [[UIBarButtonItem appearance] setBackgroundVerticalPositionAdjustment:-3 forBarMetrics:UIBarMetricsDefault];
    [[UIBarButtonItem appearance] setBackButtonBackgroundVerticalPositionAdjustment:-3 forBarMetrics:UIBarMetricsDefault];

我有兩個疑問。

  1. 這會停止按鈕具有任何突出顯示的狀態,它們可以正常工作,但不會明顯地按下按鈕。 無論如何圍繞這個?

  2. 更重要的是,這可以很好地在我的導航欄中向上推動我的按鈕,但是它會將它們推到我的工具欄以及屏幕底部我需要相反的位置,實際上將它們向下推了一下。 我怎么處理這個?

任何幫助總是贊賞,謝謝。

事實證明我找到了解決方案! 您可以使用以下內容根據對象的視圖調整這些外觀屬性:

appearanceWhenContainedIn:

而不是標准

appearance

所以我已經實現了我的需求,根據按鈕是否在導航欄或工具欄中上下調整:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setBackgroundVerticalPositionAdjustment:-3 forBarMetrics:UIBarMetricsDefault];
    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setBackButtonBackgroundVerticalPositionAdjustment:-3 forBarMetrics:UIBarMetricsDefault];

    [[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], nil] setBackgroundVerticalPositionAdjustment:3 forBarMetrics:UIBarMetricsDefault];
    [[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], nil] setBackButtonBackgroundVerticalPositionAdjustment:3 forBarMetrics:UIBarMetricsDefault];

標簽欄項目框架可以直接操作:

// get the handle of your tabBar (probably self.tabBarController.tabBar
for (UIView *item in tabBar.items) {
    item.frame = CGRectOffset(item.frame, 0.0, -3.0);
}

一種較少侵入性的水平位置調整方法是利用條形按鈕項固定和靈活的空間:

// this will put three pixels between whatever items it sits between
UIBarButtonItem *fixed = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]
fixed.width = 3.0;

將它們放入您的items數組中。 所以,如果你想用3px分隔兩個項目,請執行以下操作:

tabBar.items = [NSArray arrayWithObjects:button1, fixed, button2, nil];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM