1

UINavigationBar를 서브 클래 싱했습니다. NavigationBar에는 UIBarButtonItem 유형의 두 개의 버튼이 있습니다. 이 버튼을 움직일 수 있습니까? 예를 들어 왼쪽 버튼은 50px, 오른쪽 버튼은 50px 왼쪽으로 이동하려고합니다.UINavigationBar - UIBarButtonItem의 위치를 ​​변경하는 방법?

LayoutSubView는이 버튼을 이동할 수있는 적절한 위치입니까?

이것은 (MT에서 만든)이 내비게이션 바 클래스 :

[MonoTouch.Foundation.Register("NavigationBar")] 
public class NavigationBar : UINavigationBar 
{ 
    public NavigationBar (IntPtr handle) : base (handle) 
    { 
     Initialize(); 
    } 

    [Export ("initWithCoder:")] 
    public NavigationBar (NSCoder coder) : base (coder) 
    { 
     Initialize(); 
    } 

    public NavigationBar(RectangleF frame, string title) : base (frame) 
    { 
     InitializeWithStyleAndTitle(title); 
    } 

    void Initialize() { } 

    void InitializeWithStyleAndTitle(string title) 
    { 
     //- title 
     UINavigationItem navItem = new UINavigationItem(title); 

     //- left button 
     UIBarButtonItem leftBarButtonItem = new UIBarButtonItem("back", UIBarButtonItemStyle.Plain, this, new Selector("backAction")); 
     navItem.LeftBarButtonItem = leftBarButtonItem; 

     //- right button 
     UIBarButtonItem rightBarButtonItem = new UIBarButtonItem("update", UIBarButtonItemStyle.Plain, this, new Selector("updateAction")); 
     navItem.RightBarButtonItem = rightBarButtonItem;  

     //- style 
     BarStyle = UIBarStyle.Black; 

     PushNavigationItem(navItem, false); 
    } 

    //- selectors omitted 
} 
+1

A는'당신을위한 옵션을 UIToolBar' 사용에 버튼을 배치하고있어? – JustSid

+0

감사합니다. UINavigationBar와 같은 툴바를 사용할 수 있습니까? IB에서는 툴바가 "화면 하단"에서 사용되는 것을 보았습니다. UIToolbar를 맨 위에 올리는 것이 맞습니까? –

+1

예, 페이지 상단에 툴바를 배치 할 수 있습니다. 네비게이션 막대는 이전 페이지/화면으로 돌아갈 필요가있는 다중 레벨 표 탐색을 수행 할 때 유용합니다. – Candide

답변

1

아니, UINavigation 특정 행동을 가지고가, 왼쪽 및 오른쪽에만 단추. 버튼을 배치해야하는 경우 대신 UIToolbar를 사용해야합니다. 그 사이에 스페이서를 추가하여 버튼의 위치를 ​​조정하십시오.

+0

감사합니다. 내 의견을 참조하십시오. –

3

나는 사용자 정의 버튼의 프레임을 설정하고보기

CustomButton *menu = [[CustomButton alloc] initWithFrame:CGRectMake(7, 3, 35, 35)]; 
[menu setImage:[UIImage imageNamed:@"sliding_drawer_white_icons"] forState:UIControlStateNormal]; 
UIView * menuButtonView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 46.0f, 40.0f)]; 
[menuButtonView addSubview:menu]; 
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:menuButtonView]; 
관련 문제