2011-08-21 19 views
5

Özel bir UIBarButtonItem öğesini navbarımda leftButton olarak eklemek için kullanacağım kod. Sorun, düğmenin sol kenara çok yakın olması ve soldaki dolgu ile başka bir görüntü kullanmadan biraz nasıl girileceğini anlayamıyorum.UIBarton görüntüsünü navBar'da UIBarButtonItem içinde nasıl dengeleyebilirim?

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]; 

Çerçeveyi, edgeInsets'i ayarlamaya çalıştım, hiç şansı kalmadı. BarButtonItem hala sol kenara çok yakın. Düğme için resmi dengelemek için herhangi bir yolu var mı?

Thx

cevap

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

orada özel bırakılır veya hızlı bir dille sağ düğme

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

nasıl bu yaklaşımı kullandıktan sonra ofsetliyebilirsiniz? – senty

İlgili konular