在UIToolbar
中使用UIBarButtonItem
中的自定義圖形時,程序會自動將圖形變成白色並應用內部陰影。如何防止這種自動造型並逐字使用我的自定義圖形?如何從UIBarButtonItem中刪除樣式?
2
A
回答
1
這是怎麼回事通常會做:
UIImage *buttonImage = [UIImage imageNamed:@"myImage.png"];
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setImage:buttonImage forState:UIControlStateNormal];
[myButton setImage:buttonImage forState:UIControlStateHighlighted];
UIBarButtonItem *myBtnItem = [[UIBarButtonItem alloc] initWithCustomView:myButton];
[myButton addTarget:self action:@selector(someSelector:) forControlEvents:UIControlEventTouchUpInside];
[myBtn setFrame:CGRectMake(someX, someY, someWidth, someHeight)];
[self.toolbar setItems:[NSArray arrayWithObjects:someBtnItemOne, myBtnItem, someBtnItemThree, nil]];
[myBtnItem release];
如果這並不幫助,可以請你告訴您使用初始化工具欄和按鈕項目的代碼?
1
這裏有一類我創建了一個從繼承的UIBarButtonItem這是基於圖像:
#import "XXBarButtonImageItem.h"
@implementation XXBarButtonImageItem
- (id)initWithFrame:(CGRect)frame
image:(UIImage*)image
backgroundImage:(UIImage*)bgImage
{
_button = [UIButton buttonWithType:UIButtonTypeCustom];
[_button setFrame:frame];
self = [super initWithCustomView:_button];
if (self)
{
if (image)
[_button setImage:image forState:UIControlStateNormal];
if (bgImage)
[_button setBackgroundImage:bgImage forState:UIControlStateNormal];
}
return self;
}
- (id)initWithFrame:(CGRect)frame
image:(UIImage*)image
backgroundImage:(UIImage*)bgImage
target:(id)target
action:(SEL)selector
{
self = [self initWithFrame:frame image:image backgroundImage:bgImage];
if (self)
{
[_button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
}
return self;
}
- (void)dealloc
{
[super dealloc];
[_button release];
}
- (void)addTarget:(id)target action:(SEL)selector forControlEvents:(UIControlEvents)controlEvents
{
[_button addTarget:target action:selector forControlEvents:controlEvents];
}
- (void)setImage:(UIImage *)image forState:(UIControlState)state
{
[_button setImage:image forState:state];
}
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
{
[_button setImage:image forState:state];
}
@end
相關問題
- 1. 如何從UIBarButtonItem中刪除CustomView?
- 2. 如何從文本中刪除樣式
- 3. 如何刪除樣式?
- 4. 從UIBarButtonItem中刪除徽章子視圖
- 5. 從動態刪除樣式?
- 6. 刪除UIBarButtonItem圖像
- 7. iPhone:按下按鈕時如何從UIBarButtonItem中刪除發光(亮)?
- 8. 刪除樣式
- 9. 從div標籤中刪除樣式css
- 10. 從表中刪除樣式表內
- 11. 從q元素中刪除樣式
- 12. 從ASP.NET DataList中刪除border-collapse樣式
- 13. 從元素中刪除css樣式
- 14. 從下拉列表中刪除樣式
- 15. 從佈局中刪除樣式表
- 16. 從輸入字段中刪除樣式
- 17. 如何從TLF中的FlowElement中刪除樣式?
- 18. 如何從GAS中的對象中刪除樣式屬性
- 19. CKEditor從樣式下拉菜單中刪除樣式預覽
- 20. tinymce:從樣式屬性中刪除css樣式
- 21. 如何從RadioButtonlist控件中刪除移動jQuery樣式?
- 22. 如何從窗口中刪除WS_EX_TOPMOST樣式?
- 23. 如何從標籤中刪除樣式屬性?
- 24. 如何從樣式表中刪除某些CSS屬性?
- 25. 我如何才能從授權中刪除樣式文件夾
- 26. 如何使用jQuery從DIV中刪除高度樣式?
- 27. 如何從文本中刪除CSS樣式
- 28. 如何使用jQuery從元素中刪除所有樣式?
- 29. XSLT如何從div和td標籤中刪除樣式
- 30. 如何從SpannableString中刪除範圍樣式
我使用Interface Builder來構建我的工具欄...問題:這樣做的利弊建造他們的代碼視圖,因爲Interface Builder的太有限? – JoJo
@Jojo如果你想微調某些東西,那麼最好是以編程方式創建它,而不是在IB中。 IB很適合簡單的默認視圖和子視圖,但我會建議至少在沒有它的情況下構建一些東西;它是學習和真正理解IntrfceBldr「幕後」發生的最好方法。 「從UIBarButtonItem'繼承的」 – chown