【问题标题】:Is it possible to have a UIBarButtonItem as a cell accessoryView?是否可以将 UIBarButtonItem 作为单元格附件视图?
【发布时间】:2011-08-20 02:10:50
【问题描述】:

我有一个表格视图,其中一个单元格应该显示缩略图。但是,如果该图像不可用(尚未拍摄),我会 LIKE 让单元格的附件视图显示相机 UIBarButtonItem...但是当我尝试我常用的方法时,我得到'不兼容类型的警告。有没有办法在导航栏之外使用这些项目?

【问题讨论】:

    标签: iphone ios uitableview uibarbuttonitem


    【解决方案1】:

    不能直接使用UIBarButtonItem作为cell的accessoryView,因为UIBarButtonItem不是UIView

    次优解决方案可能是使用UIToolbar 来保存您的UIBarButtonItem。然后,您可以将UIToolbar 添加为单元格的附件视图,但最终会得到不需要的UIToolbar 轮廓。这个SO answer 解释了如何创建一个透明的UIToolbar 子类。这样你就不会看到工具栏的背景,但你也会失去UIBarButtonItem 的轮廓——它只会显示白色的相机图标:

    UIToolbar *toolbar = [[TransparentToolbar alloc] init];
    UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(someAction)];
    toolbar.frame = CGRectMake(0, 0, 40, 30);
    [toolbar setItems:[NSArray arrayWithObject:item] animated:NO];
    cell.accessoryView = toolbar;
    [item release];
    [toolbar release];
    

    【讨论】:

    • 谢谢。我省略了透明度,结果是一个不错的按钮。
    【解决方案2】:

    我认为这是不可能的。由于它被称为 BarButtonItem 它只能进入一个栏。旧方法虽然有效:截取相机按钮的屏幕截图(只需将其添加到屏幕截图的任何导航栏),将其从屏幕截图中剪切,将常规 UIButton 添加到您的单元格并将相机按钮的图像添加为背景图像你的 UIButton 使用

    [button setBackgroundImage:[UIImage imageWithImage:@"camerabutton.png"] forState:UIControlStateNormal];
    

    还可以在按下按钮时截取按钮并将其保存并设置为选定状态的图像:

    [button setBackgroundImage:[UIImage imageWithImage:@"camerabuttonpressed.png"] forState:UIControlStateHighlitedl];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      相关资源
      最近更新 更多