0
我已將UIProgressView
置於UITableViewCell
中。我面臨兩個問題:
1. UITableView
滾動正在受到阻礙。
2. UIProgressView
setProgress每次被調用(顯然),每次都會調用它的進度。將UIProgressView放入UITableViewCell中時發生的問題
可以理解的是問題1發生是因爲問題2。爲了測試這個,我在UITableViewCell
中評論UIProgressView
。當時的卷軸非常快。
這是UIProgressView
代碼:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
SWTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[SWTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.accessoryType = UITableViewCellAccessoryNone;
if ([cell respondsToSelector:@selector(layoutMargins)]) {
cell.layoutMargins = UIEdgeInsetsZero;
cell.preservesSuperviewLayoutMargins = false;
}
}
else
{
NSArray *arr = [cell.contentView subviews];
for(int i=0; i<[arr count]; i++)
{
UIView *view = [arr objectAtIndex:i];
[view removeFromSuperview];
}
}
CustomerArticleDetail *customerArticleDetails = [arrDetails objectAtIndex:indexPath.row];
...
...
UIProgressView *progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
[progressView setProgressTintColor:[UIColor colorWithRed:31.0/255 green:177.0/255 blue:137.0/255 alpha:1.0]];
[[progressView layer]setCornerRadius:5.0f];
[[progressView layer]setBorderWidth:2.0f];
[[progressView layer]setMasksToBounds:TRUE];
progressView.clipsToBounds = YES;
[[progressView layer]setFrame:CGRectMake(50, 93, self.view.frame.size.width - 55, 8)];[[progressView layer]setBorderColor:[UIColor whiteColor].CGColor];
progressView.trackTintColor = [UIColor colorWithRed:233.0/255.0 green:233.0/255.0 blue:233.0/255.0 alpha:1.0];
[progressView setProgress: ([customerArticleDetails.Logged_Hours floatValue]/[customerArticleDetails.Planned_Hours floatValue]) animated:YES];
[cell.contentView addSubview:progressView];
...
...
return cell;
}
如果您正在使用故事板,請將progressview添加到SWTableViewCell並製作它的出口。然後,您不必在代碼中始終分配init UIProgressView。 progressview圖層上的初始化和更新使其滾動緩慢。 – Akhilrajtr