- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在包含 5 个单元格的 TableView 中遇到了一个奇怪的错误。由于单元格高度较大,第五个单元格最初不在屏幕上,用户需要向下滚动才能看到它。这些单元格显示一个下载按钮、一个进度指示器,如果下载完成,则显示一个查看按钮而不是下载和进度。
前 4 个单元格显示正确。然而,第五个单元格有时会丢失下载按钮,但有时它会在每次重新启动应用程序时以大约 %50 的几率正确显示。源数据在任何时候都不会更改。
我已经使用断点来查看向下滚动时会发生什么,但我无法发现任何异常,并且在出现单元格时正确提供了数据。
谁能告诉我应该关注哪里?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @"cell1";
NSDictionary *categoryDictionary= [[appdelegate categoriesArray] objectAtIndex:indexPath.row];
categoryTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
rect=cell.labelProgressView.frame;
cell.backgroundColor = [UIColor PGColorBackground];
cell.buttonView.hidden=YES;
//Set background colors and icons
switch ([[categoryDictionary valueForKey:@"categoryID"] intValue])
{
case 1:
[cell.buttonView setBackgroundColor: [UIColor PGColorAttractions]] ;
[cell.labelProgressView setBackgroundColor: [UIColor PGColorAttractions]] ;
[cell.ivCategoryBannerImage setImage: [UIImage imageNamed:@"attraction-bg"]];
cell.ivcategoryLogoImage.image =[UIImage imageNamed:@"attractionWhite"];
break;
case 2:
[cell.buttonView setBackgroundColor: [UIColor PGColorRestaurants]];
[cell.labelProgressView setBackgroundColor: [UIColor PGColorRestaurants]];
[cell.ivCategoryBannerImage setImage: [UIImage imageNamed:@"restaurant-bg"]];
cell.ivcategoryLogoImage.image =[UIImage imageNamed:@"restaurantWhite"];
break;
case 3:
[cell.buttonView setBackgroundColor: [UIColor PGColorShopping]];
[cell.labelProgressView setBackgroundColor:[UIColor PGColorShopping]];
[cell.ivCategoryBannerImage setImage: [UIImage imageNamed:@"shopping-bg"]];
cell.ivcategoryLogoImage.image =[UIImage imageNamed:@"shoppingWhite"];
break;
case 4:
[cell.buttonView setBackgroundColor: [UIColor PGColorAccomodations]];
[cell.labelProgressView setBackgroundColor:[UIColor PGColorAccomodations]];
[cell.ivCategoryBannerImage setImage: [UIImage imageNamed:@"accomodation-bg"]];
cell.ivcategoryLogoImage.image =[UIImage imageNamed:@"accomodationWhite"];
break;
case 5:
[cell.buttonView setBackgroundColor: [UIColor PGColorArtGalleries]];
[cell.labelProgressView setBackgroundColor:[UIColor PGColorArtGalleries]];
[cell.ivCategoryBannerImage setImage: [UIImage imageNamed:@"artGallery-bg"]];
cell.ivcategoryLogoImage.image =[UIImage imageNamed:@"artGalleryWhite"];
break;
default:
break;
}
//DOWNLOAD Button
[cell.buttonViewDownload setBackgroundColor:[UIColor clearColor]];
cell.buttonViewDownload.layer.borderColor=[UIColor whiteColor].CGColor;
cell.buttonViewDownload.layer.borderWidth=1.0f;
[cell.buttonViewDownload.titleLabel setFont:[UIFont fontWithName:@"OpenSans-Bold" size:10]];
[cell.buttonViewDownload setTag:[[categoryDictionary valueForKey:@"categoryID"] intValue]];
//VIEW Button
cell.buttonView.layer.borderColor=[UIColor whiteColor].CGColor;
cell.buttonView.layer.borderWidth=1.0f;
[cell.buttonView.titleLabel setFont:[UIFont fontWithName:@"OpenSans-Bold" size:10]];
[cell.buttonView setTag:[[categoryDictionary valueForKey:@"categoryID"] intValue]];
[cell.buttonView addTarget:self action:@selector(viewbuttonClicked:) forControlEvents:UIControlEventTouchUpInside];
//CATEGORY label
NSString *categoryName =[[NSString stringWithFormat:@"%@",[categoryDictionary valueForKey:@"categoryNameen"]] uppercaseString];
NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:categoryName];
[attributedString addAttribute:NSKernAttributeName
value:[NSNumber numberWithFloat:8.0]
range:NSMakeRange(0, [categoryName length])];
[attributedString addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"OpenSans-Bold" size:19]
range:NSMakeRange(0, [categoryName length])];
[cell.labelCategory setAttributedText:attributedString];
cell.selectionStyle=UITableViewCellAccessoryNone;
//Set State
cell.ivCategoryBannerImage.alpha =0.1f;
BOOL isAvailable = [[categoryDictionary valueForKey:@"isAvailable"] boolValue];
BOOL userTappedDownload = [[categoryDictionary valueForKey:@"userTappedDownload"] boolValue];
NSLog(@"isAvailable: %d", isAvailable);
NSLog(@"userTappedDownload: %d", isAvailable);
if (isAvailable && userTappedDownload)
{
cell.buttonView.hidden=NO;
[cell.buttonView setTitle:@"VIEW" forState:UIControlStateNormal];
cell.buttonViewDownload.hidden=YES;
cell.ivCategoryBannerImage.alpha =1.0f;
rect.size.width=208.0f;
}
else if(!isAvailable && !userTappedDownload)
{
rect.size.width=0.1f;
[cell.buttonViewDownload setTitle:[NSString stringWithFormat:@"DOWNLOAD (%@ KB)",[categoryDictionary valueForKey:@"totalImagesSize"]] forState:0];
}
else if(!isAvailable && userTappedDownload)
{
rect.size.width=[[categoryDictionary valueForKey:@"totalImagesAvailable"] intValue];
[cell.buttonViewDownload setTitle:@"DOWNLOADING CONTENT" forState:UIControlStateNormal];
cell.buttonViewDownload.userInteractionEnabled = NO;
}
return cell;
}
最佳答案
第五个单元格可能正在重复使用之前设置了 cell.buttonViewDownload.hidden=YES;
的单元格之一。
尝试将 cell.buttonViewDownload.hidden=NO;
添加到应显示下载按钮的分支。
关于iOS tableview customcell - 屏幕外单元格上的控件有时不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747260/
我用 UIButton 和 UILabel 创建了一个 customCell 代码在这里: ItemViewController.h: @interface ItemViewController :
我创建了一个带有 UILabel 的自定义 UITableViewCell。 在 cellForRowAtIndexPath 方法中,我初始化自定义单元格并为 UILabel 赋值。 加载自定义单元格
我是 Objective-C 的新手,正在尝试创建自定义单元格。在 Storyboard 中(在 Xcode 4.2 下)我正在推送一个 TableViewController。在这个 Control
我有一个子类 CustomCell,它继承 self 的父类 CreateEvent。该子类描述了位于 CreateEvent View Controller 上的 TableView 单元格的各个单
我在包含 5 个单元格的 TableView 中遇到了一个奇怪的错误。由于单元格高度较大,第五个单元格最初不在屏幕上,用户需要向下滚动才能看到它。这些单元格显示一个下载按钮、一个进度指示器,如果下载完
我正在获取用户的照片资源并尝试在我的UICollectionView中创建自定义UICollectionViewCell,其中第一个索引是相机Image 和其他单元格是相机图像。但是当我滚动时,就像重
我正在使用 collectionCell 选择和取消选择 collectionCell 上的图像。 但是当我点击选中的单元格时,它不会被取消选中。 我根据 Nirav 建议更改了我的代码,它适用于当前
我有很多 customCells,每个单元格可能有一个按钮,其作用类似于文本框或文本区域。当 View 加载时,它们的高度非常小。 override func viewDidLoad() {
我想处理我的开关。如果 UIswitches 发生变化,我如何保存数据并在发生变化时更新我的 tableview。 稍后我想在更改第一个开关时隐藏一个部分。那么我该如何在这个函数中做到这一点呢?
我正在创建一个包含 UILabel 的 CustomCell,默认情况下,UILabel 将有两行启用环绕的文本,但有时文本将需要三行。 字体类型和大小是固定的,无法更改,我试图在创建 NSStrin
这可能是一个新手错误和问题,但下面这段代码有什么问题? class CustomCell: UITableViewCell { @IBOutlet weak var TitleLabel: U
我有一个带有自定义单元格的 tableView,每个单元格的标签中都有文本 当我选择一个单元格时,我会用另一种颜色突出显示该单元格并将其保存在一个变量中,这样当我使用“下一步”按钮时,我将转到另一个
我有一个 UITableView,有两个部分,第二部分在其标题中包含一个 UISegmentedControl。我希望用户可以通过在我的 UISegmentedControl 中选择一个段来更改 ta
这个问题在这里已经有了答案: "Auto Layout still required after executing -layoutSubviews" with UITableViewCell sub
我有一个 UITableView,其中的行包含两个 UISwitch 按钮。在我升级到 Xcode8 之前,它与我一起向 View Controller 添加一个协议(protocol),如下所示 p
我有一个自定义单元格类,其中有两个按钮和一个在其自己的类中定义的标签。当按下按钮时,我使用协议(protocol)委托(delegate)来更新标签的值。但我无法弄清楚如何更新 UITableView
下午好,我正在 Firebase 中运行一个查询,我用得到的信息来运行另一个查询。我遇到的问题是在第二个 CustomCell 上显示数据。我正在使用 print 语句,数据显示在控制台中。 Segu
我已经使用自定义单元实现了 UITableView, 我想做的是,我想根据文本长度改变高度UITableViewCell,(动态高度) 这是我的代码片段, #define FONT_SIZE 14.0
我正在尝试制作一个 UITableView,其中每个单元格都包含一个问题和显示在所述问题下方的多个按钮,供用户选择一个来回答。 当我在初始页面上选择“进行测试”按钮时,它会转到 UITableView
我有一个简单的 UITableView 不可滚动且不需要重复使用单元格。我有一个带有 .xib 文件的自定义单元类。 我的目标是在协议(protocol)方法中使用自定义初始化传递索引路径 -(UIT
我是一名优秀的程序员,十分优秀!