jjzjj

iphone - 无法在 tableviewcell ios 7 上显示删除按钮

coder 2023-09-27 原文

我使用 UITableviewcellEditingstyleDelete 显示按钮,让用户点击它显示删除按钮(这与您在电子邮件应用程序中看到的方式相同,当用户点击编辑然后点击按钮显示删除按钮)。它在 ios6 中工作正常,但是当我在具有 ios 7 的设备上构建我的应用程序时,删除按钮消失了,但是当您点击删除按钮区域时,它也可以删除。问题是用户看不到删除按钮(操作系统提供的红色按钮)。 我的代码是:

- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Detemine if it's in editing mode
    if (self.editing)
    {
       return UITableViewCellEditingStyleDelete;
    }

   return UITableViewCellEditingStyleNone;
}

请帮助我找到解决方案,我对 iOS7 环境不太了解。谢谢!

最佳答案

谢谢大家的建议,这个方案可以解决,我做成custom cell

 UIImageView* backgroundImage;

//Variable for animation delete button
// Keep the ContactView in normal state
BOOL bFirstEditingCell;
BOOL bShownRedMinus;
BOOL bShownDeleteButton;
CGRect frameOfContactViewInNormal;
CGPoint centerOfCellInNormal;
UITableViewCellAccessoryType accessoryTypeInNormal;

//

 - (id)initWithCoder:(NSCoder *)decoder
{
    if (self = [super initWithCoder:decoder])
    {
        super.backgroundColor = [UIColor clearColor];
        self.selectionStyle = UITableViewCellSelectionStyleNone;
        backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"row_gradient" ]];
        self.backgroundView = backgroundImage;
        bShownDeleteButton = false;
        bShownRedMinus = false;
        bFirstEditingCell = true;
        accessoryTypeInNormal = UITableViewCellAccessoryNone;
    }
    return self;
}


- (void)willTransitionToState:(UITableViewCellStateMask)state {
[super willTransitionToState:state];
if (!isOS7()) {
    return;
}

for (UIView *subview in self.subviews) {
    //Keep normal value of contact view and cell
    if (bFirstEditingCell   ) {
        frameOfContactViewInNormal = self->contactView.frame;
        frameOfContactViewInNormal.size.width = kContactViewWidth;
        centerOfCellInNormal = subview.center;
        bFirstEditingCell = false;
    }

    if (state == UITableViewCellStateDefaultMask) {
        self.backgroundView = backgroundImage;
        subview.center = centerOfCellInNormal;
        //Set for position of speed dial image
        CGRect f = frameOfContactViewInNormal;
        if (bShownRedMinus) {
            f.size.width -= kRedMinusButtonWidth;
        }
        self->contactView.frame = f;
        bShownDeleteButton = false;
        self.accessoryType = accessoryTypeInNormal;
    }
    else if (state == UITableViewCellStateShowingDeleteConfirmationMask)
    {
        float sectionIndexWidth = 0.0;

        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
            sectionIndexWidth = 30.0;
        }
        else {
            sectionIndexWidth = 15.0;
        }
        CGPoint center = centerOfCellInNormal;
        subview.center = CGPointMake(center.x - sectionIndexWidth, center.y);
        self.backgroundView = nil;

        //Set width of contact name
        UIView* view = [subview.subviews objectAtIndex: 0];
        CGRect f = view.frame;
        f.origin.x = (kDeleteButtonWidth + sectionIndexWidth);
        view.frame = f;
        f = frameOfContactViewInNormal;
        f.size.width = self.frame.size.width - (kDeleteButtonWidth + sectionIndexWidth);
        self->contactView.frame = f;
        bShownDeleteButton = true;
        bShownRedMinus = false;
        accessoryTypeInNormal = self.accessoryType;
        self.accessoryType = UITableViewCellAccessoryNone;
    }
    else if (state == UITableViewCellStateShowingEditControlMask) {
        CGRect f = frameOfContactViewInNormal;
        f.size.width -= 5;
        self->contactView.frame = f;
        bShownRedMinus = true;
    }
    else if (state == 3) { //State for clicking red minus button
        CGRect f = frameOfContactViewInNormal;
        f.size.width += kRedMinusButtonWidth;
        self->contactView.frame = f;

        self.backgroundView = nil;
    }
}
}

关于iphone - 无法在 tableviewcell ios 7 上显示删除按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19117161/

有关iphone - 无法在 tableviewcell ios 7 上显示删除按钮的更多相关文章

  1. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  2. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

    我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

  5. ruby - 我可以使用 Ruby 从 CSV 中删除列吗? - 2

    查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html

  6. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  7. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  8. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  9. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  10. ruby - 我可以使用 aws-sdk-ruby 在 AWS S3 上使用事务性文件删除/上传吗? - 2

    我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的

随机推荐