2011-08-21 28 views
5

Oto kod, którego używam do wstawienia niestandardowego UIBarButtonItem jako leftButton na moim pasku nawigacyjnym. Problem polega na tym, że przycisk znajduje się zbyt blisko lewej krawędzi i nie mogę się zorientować, jak nieznacznie go zagłębić, bez użycia innego obrazu z wyściółką po lewej stronie?Jak mogę zignorować obraz UIButton wewnątrz UIBarButtonItem na navBar?

UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 20, 20)]; 
btn.imageEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0); 
[btn setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal]; 
self.myBtn = btn; 
[btn release]; 

UIBarButtonItem *barBtn = [[UIBarButtonItem alloc] initWithCustomView:self.myBtn]; 
self.myBarBtn = barBtn; 
self.myBarBtn.imageInsets = UIEdgeInsetsMake(0, 5, 0, 0); 
[self.navigationItem setLeftBarButtonItem:self.myBarBtn animated:YES]; 
[barBtn release]; 

Próbowałem dostosowania ramki, edgeInsets, wszystko bez powodzenia. Element barButtonItem jest nadal zbyt blisko lewej krawędzi. Czy istnieje sposób na zrekompensowanie obrazu przycisku?

Thx

Odpowiedz

2
UIImage *buttonImage = [UIImage imageNamed:@"Close.png"]; 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [button setImage:buttonImage forState:UIControlStateNormal]; 
    button.imageEdgeInsets = UIEdgeInsetsMake(0, -40, 0, 0); 
    button.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height); 

    [button addTarget:self action:@selector(donePressed:) forControlEvents:UIControlEventTouchUpInside]; 

    //create a UIBarButtonItem with the button as a custom view 
    UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 
    self.navigationItem.leftBarButtonItem = customBarItem; 
0

istnieje zwyczaj lewy lub prawy przycisk z szybkim języku

let buttonEdit: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton 
buttonEdit.frame = CGRectMake(0, 0, 40, 40) 
buttonEdit.setImage(UIImage(named:"nav-right-Y.png"), forState: UIControlState.Normal) 
buttonEdit.addTarget(self, action: "rightNavItemEditClick", forControlEvents: UIControlEvents.TouchUpInside) 
var rightBarButtonItemEdit: UIBarButtonItem = UIBarButtonItem(customView: buttonEdit) 
self.navigationItem.rightBarButtonItem = rightBarButtonItemEdit 
+0

Jak mogę przesunięcie po użyciu tego podejścia? – senty

Powiązane problemy