UIButtonType问题

时间:2010-12-01 07:18:27

标签: iphone cocoa-touch iphone-sdk-3.0 ios4 uibutton

我通过传递一个整数值来创建一个UIButton。

 UIButton* custom_newBackButton = [UIButton buttonWithType:101];
 [custom_newBackButton addTarget:self action:@selector(backButtonAction) forControlEvents:UIControlEventTouchUpInside];
 [custom_newBackButton setTitle:@"Back" forState:UIControlStateNormal];

 UIBarButtonItem* newBackButton = [[UIBarButtonItem alloc] initWithCustomView:custom_newBackButton];
 [[self navigationItem] setLeftBarButtonItem: newBackButton];

在某些类中,这可以工作但是它失败的一些类“从int到UIButtonType的转换无效”。这是一种推荐的方法来处理这个问题。我只是使用这个101来获得后退按钮的外观和感觉。

此致

Dilshan

2 个答案:

答案 0 :(得分:5)

Apple文档资料中正式记录了以下按钮类型:

typedef enum {
   UIButtonTypeCustom = 0,
   UIButtonTypeRoundedRect,
   UIButtonTypeDetailDisclosure,
   UIButtonTypeInfoLight,
   UIButtonTypeInfoDark,
   UIButtonTypeContactAdd,
} UIButtonType;

享受!请避免使用直接值。常量值可能会改变并破坏您的应用程序。

答案 1 :(得分:1)

明确地将其强制转换为UIButtonType应该可以正常工作,但常量是未记录的,如果审阅者知道这一点,则会在提交到App Store时被拒绝。