• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 以编程方式将按钮添加到 Collection View 单元格

[复制链接]
菜鸟教程小白 发表于 2022-12-12 10:03:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在 Xcode 4.6 中有一个应用程序。在一个 View Controller 中,我有一个 Collection View 。通过用户与 View 的交互将单元格添加到 View 中。这工作正常。然后,我想向每个单元格添加一个按钮(以编程方式),以允许删除该单元格。我希望按钮位于每个单元格的右上角。问题是按钮出现在 Collection View 第一行中所有单元格的每个单元格内的所需位置(再次,右上角),但随后出现在第一行之后的所有单元格的单元格之外。见下图:enter image description here

我的按钮创建方法是:

-(CollectionViewCellButton *)makeDeleteButtonForCellUICollectionViewCell *)cell
{
  CollectionViewCellButton *button = [CollectionViewCellButton buttonWithType:UIButtonTypeCustom];
  CGSize newImageSize = CGSizeMake(cell.frame.size.width/2.5, cell.frame.size.height/2.5);
  UIImage *image = [SeeYourAlbumViewController imageWithImage:[UIImage imageNamed"delete"] scaledToSize:newImageSize];

  CGFloat width = image.size.width;
  CGFloat height = image.size.height;
  CGFloat X = cell.frame.size.width - width;
  CGFloat Y = cell.frame.origin.y;

  button.frame = CGRectMake(X, Y, width, height);
  [button setImage:image forState:UIControlStateNormal];
  [button addTarget:self
           actionselector(deleteCollectionViewCell
   forControlEvents:UIControlEventTouchUpInside];

  return button;

}

上述方法在我的cell创建方法中调用如下:

-(UICollectionViewCell *)collectionViewUICollectionView *)collectionView
             cellForItemAtIndexPathNSIndexPath *)indexPath
{
  UICollectionViewCell *cell = [collectionView
                              dequeueReusableCellWithReuseIdentifier"newCell"
                              forIndexPath:indexPath];

  //CALLED HERE!!
  CollectionViewCellButton *cellButton = [self makeDeleteButtonForCell:cell]; 

  cellButton.indexPath = indexPath;
  [cell addSubview:[self.pictures objectAtIndex:indexPath.row]]; 
  [cell addSubview:cellButton];

  return cell;
}

谁能建议我做错了什么?



Best Answer-推荐答案


按钮被添加为单元格的 subview 。它应该使用单元格的坐标系(边界),而不是单元格的 super View (框架)的坐标系。在您的情况下,由于按钮位于单元格集的顶部

CGFloat Y = 0;

关于ios - 以编程方式将按钮添加到 Collection View 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15821486/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap