Code Bye

iOS cell中添加按钮图片,图片不显示,点击有反应

                cell.backgroundColor =[UIColor clearColor];
                completeBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
                [completeBtn setFrame:CGRectMake(30.0f,0.0f,320.0f,40.0f)];   
                [completeBtn setTag:1];
                [completeBtn addTarget:self action:@selector(completeClick:) forControlEvents:UIControlEventTouchUpInside];
                [completeBtn setImage:[UIImage imageNamed:@”completeNormal.png”] forState:UIControlStateNormal];
                [cell addSubview:completeBtn];

这是代码,效果如下,

还有个问题,cell之间的分割线为什么左端没有闭合? 断开


20分
分割线是iOS7的默认样式,UITableView从iOS7开始多了一个separatorInset属性,默认就是左边偏移15px。
你可以对每个UITableView单独设置,也可以全局统一设置:
// 为每个tableView单独设置
self.tableView.separatorInset = UIEdgeInsetsZero;
// 全局统一设置
[[UITableView appearance] setSeparatorInset:UIEdgeInsetsZero];

如果这样还不行的话,可能是受到了layoutMargins的影响,需要加上:

cell.layoutMargins = UIEdgeInsetsZero;
cell.preservesSuperviewLayoutMargins = NO;

关于Button的问题,我怀疑是image不存在,你可以给Button设置一个蓝色的背景图,看Button到底有没有显示出来。

希望你早日变成iOS开发大神,为社区作更多的贡献!

Have fun!

引用 2 楼 zhangao0086 的回复:

希望你早日变成iOS开发大神,为社区作更多的贡献!

Have fun!

   
大哥  还是你啊。  使用别的图确实可以现实,但为什么我想用的不行?
这是我用的图,不能现实,换成里面的别的图就可以 ,是否和图的大小有关系?

还有个问题 , 怎么实现在tableview 最后一个section下面加上按钮 
 
        UITableViewHeaderFooterView *view = [tableView footerViewForSection:2];
        UIView* footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 360, 40.0)];
        UIButton* btncomplete = [[UIButton alloc] initWithFrame:footerView.frame];
        [btncomplete setImage:[UIImage imageNamed:@"mail.png"] forState:UIControlStateNormal];
        [btncomplete addTarget:self action:@selector(completeClick:) forControlEvents:UIControlEventTouchUpInside];
        [footerView addSubview:btncomplete];
        [view addSubview:footerView];

这段代码 无效果啊

引用 3 楼 u010425713 的回复:
Quote: 引用 2 楼 zhangao0086 的回复:

希望你早日变成iOS开发大神,为社区作更多的贡献!

Have fun!

   
大哥  还是你啊。  使用别的图确实可以现实,但为什么我想用的不行?
这是我用的图,不能现实,换成里面的别的图就可以 ,是否和图的大小有关系?

你这张图片可能没有编译进去。选中那张图片,然后右边面板有目标,确保你使用的目标是勾选的:

引用 4 楼 u010425713 的回复:

还有个问题 , 怎么实现在tableview 最后一个section下面加上按钮 

 
        UITableViewHeaderFooterView *view = [tableView footerViewForSection:2];
        UIView* footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 360, 40.0)];
        UIButton* btncomplete = [[UIButton alloc] initWithFrame:footerView.frame];
        [btncomplete setImage:[UIImage imageNamed:@"mail.png"] forState:UIControlStateNormal];
        [btncomplete addTarget:self action:@selector(completeClick:) forControlEvents:UIControlEventTouchUpInside];
        [footerView addSubview:btncomplete];
        [view addSubview:footerView];

这段代码 无效果啊

你可以设置tableView的tableFooterView:

UIButton* btncomplete = [[UIButton alloc] initWithFrame:footerView.frame];
self.table.tableFooterView = btncomplete;
引用 5 楼 zhangao0086 的回复:
Quote: 引用 3 楼 u010425713 的回复:
Quote: 引用 2 楼 zhangao0086 的回复:

希望你早日变成iOS开发大神,为社区作更多的贡献!

Have fun!

   
大哥  还是你啊。  使用别的图确实可以现实,但为什么我想用的不行?
这是我用的图,不能现实,换成里面的别的图就可以 ,是否和图的大小有关系?

你这张图片可能没有编译进去。选中那张图片,然后右边面板有目标,确保你使用的目标是勾选的:

是勾选的。 简直蛋疼

敢不敢上Demo
引用 8 楼 zhangao0086 的回复:

敢不敢上Demo

献上。


   if(indexPath.section==2)  //最后一个section,要再cell中加按钮
    {
        UIButton* completeBtn;
        UIButton* cancelBtn;
        switch (indexPath.row) {    //第一个cell 放 COMPLETE按钮
            case 0:
                cell.backgroundColor =[UIColor clearColor];
                completeBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
                completeBtn.frame=CGRectMake(30.0f,0.0f,320.0f,40.0f);
                //[completeBtn setTitle:@"COMPLETE" forState:UIControlStateNormal];
                [completeBtn setTag:1];
                [completeBtn addTarget:self action:@selector(completeClick:) forControlEvents:UIControlEventTouchUpInside];
                [completeBtn setImage:[UIImage imageNamed:@"completeNormal.png"] forState:UIControlStateNormal];
                //[completeBtn setBackgroundColor:[UIColor greenColor]];
                [cell addSubview:completeBtn];
               // [cell setBackgroundColor:[UIColor greenColor]];
               // cell.describe.text = @"COMPLETE";
                break;
            case 1:                            //第二个放CANCEL按钮
                cell.backgroundColor =[UIColor clearColor];
                cancelBtn = [UIButton buttonWithType:UIButtonTypeCustom];
                cancelBtn.frame = CGRectMake(10.0f,0.0f,320.0f,40.0f);
                //[cancelBtn setTitle:@"CANCEL" forState:UIControlStateNormal];
                [cancelBtn setTag:2];
                [cancelBtn addTarget:self action:@selector(completeClick:) forControlEvents:UIControlEventTouchUpInside];
                [cancelBtn setImage:[UIImage imageNamed:@"cancel.png"] forState:UIControlStateHighlighted];
                [cell addSubview:cancelBtn];
              //  [cell setBackgroundColor:[UIColor redColor]];
              //  cell.describe.text = @"CANCEL";
                break;
            default:
                break;
        }
    }

把图片发上来
引用 10 楼 zhangao0086 的回复:

把图片发上来


为什么 加载不进图片?

用ps 保存的png  ,我又打开,格式错误
引用 13 楼 u010425713 的回复:

用ps 保存的png  ,我又打开,格式错误

。。。还有这事

引用 14 楼 zhangao0086 的回复:
Quote: 引用 13 楼 u010425713 的回复:

用ps 保存的png  ,我又打开,格式错误

。。。还有这事

找到问题了  默认保存png时选择了 压缩模式。  取消就可以了   
大哥一般 在一个TableView下面如果要跟按钮,譬如 微信联系人 详细界面  最下面有2个按钮 发消息 和 视频聊天 

引用 14 楼 zhangao0086 的回复:
Quote: 引用 13 楼 u010425713 的回复:

用ps 保存的png  ,我又打开,格式错误

。。。还有这事

但是颜色不对:

为什么是蓝色的

引用 15 楼 u010425713 的回复:
Quote: 引用 14 楼 zhangao0086 的回复:
Quote: 引用 13 楼 u010425713 的回复:

用ps 保存的png  ,我又打开,格式错误

。。。还有这事

找到问题了  默认保存png时选择了 压缩模式。  取消就可以了   
大哥一般 在一个TableView下面如果要跟按钮,譬如 微信联系人 详细界面  最下面有2个按钮 发消息 和 视频聊天 

你把两个按钮放在一个UIView里,然后把这个UIView设为tableFooterView,类似于这样:

UIView *container = [[UIView alloc] initWithFrame:];
[container addSubview:button1];
[container addSubview:button2];
self.table.tableFooterView = container;
引用 16 楼 u010425713 的回复:
Quote: 引用 14 楼 zhangao0086 的回复:
Quote: 引用 13 楼 u010425713 的回复:

用ps 保存的png  ,我又打开,格式错误

。。。还有这事

但是颜色不对:

为什么是蓝色的

还是检查下这张图片,看看颜色模式什么的,比如是不是RGB,或者CMYK之类的

颜色问题 是不是设置成了按钮的原因? 原先图片是RGB的,我选了张GRAY的 也变成了蓝色。 
还有个问题,不好意思 。 问题贼多:

tableview1中点击一个一个cell 跳转到tableview2,点击tableview2中的删除按钮后从数据库中删除该条目,pop到tableview1,同时更新tableview1的数据,即少了一条。是用委托,调用tableview1的reloadData吗? reloadData具体是调用了tableView1中哪几个函数?

引用 20 楼 u010425713 的回复:

还有个问题,不好意思 。 问题贼多:

tableview1中点击一个一个cell 跳转到tableview2,点击tableview2中的删除按钮后从数据库中删除该条目,pop到tableview1,同时更新tableview1的数据,即少了一条。是用委托,调用tableview1的reloadData吗? reloadData具体是调用了tableView1中哪几个函数?

不用委托,用通知或直接在viewWillAppear里刷新就行了,刷新的时候从数据库中读取(或者在内存中做一个缓存)后调用reloadData。
reloadData会调用UITableViewDataSource的所有方法。

http://goobbe.com/questions/3775913/using-a-custom-image-for-a-uitableviewcell-s-accessoryview-and-having-it-respond

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明iOS cell中添加按钮图片,图片不显示,点击有反应