2011-08-21 29 views
5

Đây là mã tôi đang sử dụng để chèn UIBarButtonItem tùy chỉnh làm nút leftButton trên thanh điều hướng của tôi. Vấn đề là nút quá gần với cạnh bên trái và tôi không thể tìm ra cách thụt lề nó một chút mà không sử dụng một hình ảnh khác có đệm ở bên trái?Làm thế nào tôi có thể bù đắp hình ảnh UIButton bên trong UIBarButtonItem trên 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]; 

Tôi đã thử điều chỉnh khung, edgeInsets, tất cả không may mắn. Thanh barButtonItem vẫn còn quá gần cạnh trái. Có cách nào để bù đắp hình ảnh cho nút không?

Thx

Trả lời

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

có được các tùy chỉnh sang trái hoặc nút đúng với ngôn ngữ nhanh chóng

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

Làm thế nào tôi có thể bù đắp sau khi sử dụng phương pháp đó? – senty

Các vấn đề liên quan