菜鸟教程小白 发表于 2022-12-12 16:08:20

ios - 从包含 UITableView 中多个单元格的行中删除选定的图像


                                            <p><p>我有一个包含图像列表的 UITableView,每行包含 4 个 <code>UITableViewCell</code>,
用户可以选择多个图像(选择是通过在单元格上隐藏和显示覆盖图像)
我想要做的是当用户单击删除按钮时从我的表中删除选定的图像。</p>

<p>以下是部分代码:</p>

<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @&#34;Cell&#34;;   
ThumbnailImageCell *cell = (ThumbnailImageCell *);

if (cell == nil)
{               
    cell = [[ initWithManagedImages: reuseIdentifier:CellIdentifier] autorelease];
}   
else
{      
    ];
}

return cell;}



-(NSArray*)imagesForIndexPath:(NSIndexPath*)_indexPath {

int index = (_indexPath.row*4);
int maxIndex = (_indexPath.row*4+3);

if(maxIndex &lt; ) {

    return ,
            ,
            ,
            ,
            nil];
}

else if(maxIndex-1 &lt; ) {

    return ,
            ,
            ,
            nil];
}

else if(maxIndex-2 &lt; ) {

    return ,
            ,
            nil];
}

else if(maxIndex-3 &lt; ) {

    return ];
}

return nil;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return ceil( / 4.0);
}
</code></pre>

<p>我尝试做的是以下但到目前为止没有任何成功</p>

<pre><code>-(void)finishDeleting{
int countOfDeletedThread;
;
;

NSMutableIndexSet *mutableIndexSet = [ init];
NSMutableArray *indexToDelete = [ init];
NSIndexPath *indexPath ;

for(ThumbnailImage *thumbnailImage in self.imagesArray)
{
    if()
    {
       countOfDeletedThread = countOfDeletedThread+1;
       indexPath = ;

      ;
      ;

    }
}
;
;

;
;

;
;
;
;}
</code></pre>

<p>有什么帮助吗?我被困了2天,不知道该怎么办。</p>

<p>谢谢。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果我理解正确,每个表格行有 4 个 <code>UIImageView</code>,而不是
4 <code>UITableViewCell</code>s。这意味着如果您删除图像的一个子集,剩下的
图像将在所有行中“重排”。因此使用没有意义
<code>beginUpdates/deleteRowsAtIndexPaths/endUpdates</code>。你可能应该只是</p>

<ul>
<li>从数据源数组中移除选中的图片<code>self.imagesArray</code>,</li>
<li>调用<code></code>。</li>
</ul>

<p>从数组中移除选中的图片可以稍微简化为</p>

<pre><code>NSIndexSet *indexSet = [self.imagesArray indexesOfObjectsPassingTest:^BOOL(ThumbnailImage *thumbnailImage, NSUInteger idx, BOOL *stop) {
    return ;
}];
;
</code></pre>

<p>请注意 <a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UICollectionView_class/Reference/Reference.html" rel="noreferrer noopener nofollow"><code>UICollectionView</code></a> (自 iOS 6 起可用)可能更适合显示
每行多张图片。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 从包含 UITableView 中多个单元格的行中删除选定的图像,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19741005/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19741005/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 从包含 UITableView 中多个单元格的行中删除选定的图像