मैं एक कस्टम छवि के साथ एक UIBarButtonItem बनाना चाहता हूं, लेकिन मैं उस सीमा को नहीं चाहता जो iPhone जोड़ता है, क्योंकि मेरी छवि की एक विशेष सीमा है।
यह बैक बटन की तरह ही है लेकिन फॉरवर्ड बटन है।
इस एप्लिकेशन को एक inHouse परियोजना के लिए है, इसलिए मुझे परवाह नहीं है अगर Apple इसे अस्वीकार या मंजूरी देता है या इसे पसंद करता है :-)
अगर मैं initWithCustomView: UIBarButtonItem की v संपत्ति का उपयोग करता हूं, तो मैं यह कर सकता हूं:
UIImage *image = [UIImage imageNamed:@"right.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage: [image stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal];
[button setBackgroundImage: [[UIImage imageNamed: @"right_clicked.png"] stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateHighlighted];
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
[button addTarget:self action:@selector(AcceptData) forControlEvents:UIControlEventTouchUpInside];
UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
[v addSubview:button];
UIBarButtonItem *forward = [[UIBarButtonItem alloc] initWithCustomView:v];
self.navigationItem.rightBarButtonItem= forward;
[v release];
[image release];
यह काम करता है, लेकिन अगर मुझे इस प्रक्रिया को 10 दृश्यों में दोहराना है, तो यह DRY नहीं है।
मुझे लगता है कि मुझे उपवर्ग करना होगा, लेकिन क्या?
- NSView?
- UIBarButtonItem?
धन्यवाद,
सादर,