我有UITableView
。我在Tableview中有4个单元格。
我的Tableview alpha值为0.8。
但我的要求是我要先3个单元格将是alpha值0.8,第4个单元格将是1.0 alpha值。
那么如何根据细胞设置这些alpha值?
请帮帮我。我过去2天面临这个问题。
这是我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
NSString *simpleTableIdentifier = [NSString stringWithFormat:@"%@%d",@"Cell",indexPath.row];
if (indexPath.row == 0)
{
cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
cell.alpha = 0.8;
}
}
else if (indexPath.row == 1)
{
cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
cell.alpha = 0.8;
}
}
else if(indexPath.row == 2)
{
cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
cell.alpha = 0.8;
}
}
else if (indexPath.row == 3)
{
cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
cell.alpha = 1.0;
}
}
return cell;
}
答案 0 :(得分:1)
我希望这一行代码解决您的问题
cell.contentView.alpha = 0.8
答案 1 :(得分:0)
如何使用alpha值设置单元格背景颜色?
cell.backgroundColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.8];
答案 2 :(得分:0)
clearColor的灰度和alpha = 0,所以无论你设置什么alpha,它都不会工作,你必须有一个实际的颜色,所以alpha具有可见的效果
答案 3 :(得分:0)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
NSString *simpleTableIdentifier = [NSString stringWithFormat:@"Cell"];
cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
UIView *lView_ = [[UIView alloc] init];
lView_ = [[UIView alloc] init];
lView_.backgroundColor = [UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:0.6];
cell.backgroundView = lView_;
}
UIView *backview = (UIView *)cell.backgroundView;
if (indexPath.row == 3)
{
backview.backgroundColor = [UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:1];
}
else
{
backview.backgroundColor = [UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:0.2];
}
return cell;
}
使用上述内容并检查它是否正常工作。我希望这可以解决您的问题。
答案 4 :(得分:0)
您应该更改此委托方法中的单元格
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.alpha = indexPath.row < 3 ? 0.8 : 1.0;
}