菜鸟教程小白 发表于 2022-12-13 07:58:15

ios - UITableViewCell 自定义添加到收藏夹按钮问题


                                            <p><p>在我的表格 View 中,我在每个单元格中放置了一个自定义的“添加到收藏夹”按钮,以使用户能够将确切的单元格内容复制到第二个表格 ViewController 。当您点击“添加到收藏夹”按钮时,会出现一个警报 View ,询问您是否要复制单元格并将其粘贴到第二个 ViewController 。现在有两件事。
1-如果从警报 View 中选择“确定”以指示单元格被复制并粘贴到第二个表格 View ,是否有办法从该单元格中永久删除“添加到收藏夹”按钮? - 因此用户将无法一遍又一遍地添加单元格内容。
2- 这是一个更大的问题:我如何通过单击“添加到收藏夹”将单元格内容复制并粘贴到 secondtableviewController ?</p>

<p>这是我的细胞重新配置的方式:</p>

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

    UITableViewCell *cell = ;
    if (cell == nil)
      cell = [ initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

    NSString* letter = ;
    NSArray* arrayForLetter = (NSArray*);
    Songs* songs = (Songs*);

    cell.textLabel.text = songs.name;
    cell.detailTextLabel.text = songs.description;

    CGSize itemSize = CGSizeMake(50, 50);
    UIGraphicsBeginImageContextWithOptions(itemSize, NO, UIScreen.mainScreen.scale);
    CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
    ;
    cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    UIButton *addtoFavsButton = ;
    addtoFavsButton.frame = CGRectMake(200.0f, 5.0f, 105.0f, 70.0f);
    forState:UIControlStateNormal];
    ];
    ;
    [addtoFavsButton addTarget:self
                        action:@selector(addtoFavs:)
            forControlEvents:UIControlEventTouchUpInside];
    return cell;
    }
- (IBAction)addtoFavs:(id)sender
{
    UIAlertView *alert = [initWithTitle:@&#34;Dikkaaaat!&#34;
                                                   message:@&#34;Şarkıyı Favori Akorlarınıza Alıyorsunuz...&#34;
                                                delegate:nil
                                       cancelButtonTitle:@&#34;Cancel&#34;
                                       otherButtonTitles:@&#34;OK&#34;, nil];
            ;
    }
</code></pre>

<p> <img src="/image/H3yLb.png" alt="enter image description here"/>
<img src="/image/6F3Th.png" alt="enter image description here"/> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>考虑到数据仅在应用程序中,并且考虑到您使用的是常规表格单元格,而不是自定义单元格,我的建议是:</p>

<ul>
<li><p>在您的应用中创建一个名为“myFavorites”或其他名称的新简单数组,该数组将仅包含数值列表。</p></li>
<li><p>当用户确认添加到收藏夹时,从歌曲数组中获取当前部分和行索引,并存储在这个新数组中。</p></li>
<li><p>在您的第一个 ViewController 中,向“cellForRowAtIndexPath”添加一个简单的检查,以查看该行的歌曲是否存在于新数组中。</p></li>
</ul>

<p>类似:</p>

<pre><code> if([ containsObject:]){
   // Don&#39;t make button because is already a favorite.
}else{
   // Make button because not yet a favorite.
}
</code></pre>

<p>您的第二个表格 View 将几乎相同,除了“cellForRowAtIndexPath”顶部附近,请进行类似检查:</p>

<pre><code>if([ containsObject:]){
   // Is a favorite, so put regular cell stuff here to have the cell show
   ....

}else{
   // Not a favorite, don&#39;t generate cell.
   cell.visible = NO;
   return cell;
}
</code></pre>

<p>您还可以做其他事情,但这需要将您的设置从常规单元更改为具有新类和属性等等的自定义单元,因此实现起来有点复杂,但实际上仍相当于相同的输出/处理。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UITableViewCell 自定义添加到收藏夹按钮问题,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/30759425/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/30759425/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UITableViewCell 自定义添加到收藏夹按钮问题