2011-08-21 11 views
5

यहां कोड है जिसका उपयोग मैं अपने नेविबार पर बाएं बटन के रूप में एक कस्टम UIBarButtonItem डालने के लिए कर रहा हूं। मुद्दा यह है कि बटन बाएं किनारे के बहुत करीब है और मैं यह नहीं समझ सकता कि बाईं ओर पैडिंग के साथ किसी अन्य छवि का उपयोग किए बिना इसे थोड़ा सा कैसे इंडेंट करना है?मैं navBar पर UIBarButtonItem के अंदर UIButton छवि को कैसे ऑफ़सेट कर सकता हूं?

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

मैंने फ्रेम, किनारे इन्सेट्स को बिना किसी किस्मत के समायोजित करने का प्रयास किया है। बारबटन इटिम अभी भी बाएं किनारे के बहुत करीब है। बटन के लिए छवि ऑफसेट करने का कोई तरीका है?

Thx

उत्तर

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

वहाँ कस्टम छोड़ दिया है या तेजी से भाषा के साथ सही बटन

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

कैसे मुझे लगता है कि दृष्टिकोण का उपयोग कर के बाद ऑफसेट कर सकते हैं? – senty

संबंधित मुद्दे