我在iOS6中使用表视图控制器中的自定义表格视图单元格制作应用程序。该单元格是在故事板中使用原型单元设计的。
在表格视图控制器中,我做了三件事:
问题是,当加载表格视图时,最初出现的3个单元格会正确显示动画和圆角但没有阴影效果。但是,当我向下滚动时,出现的新单元格也会有动画+圆角+阴影。
而且,现在当我向后滚动时,最初的3个细胞也会产生阴影效果。
几个小时的调试让我更加无知。有什么建议吗?
答案 0 :(得分:1)
我解决了问题。 [cell layoutSubviews]完成我需要的一切:
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
cell.imageView.layer.masksToBounds = NO;
cell.imageView.layer.cornerRadius = 5.0f;
[cell layoutSubviews];
}
cell.imageView.layer.shadowOpacity = 0.5f;
cell.imageView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:cell.imageView.bounds cornerRadius:5.0f].CGPath;
cell.imageView.layer.shadowOffset = CGSizeMake(2.5f, 2.5f);
cell.imageView.layer.shadowRadius = 2.5f;
答案 1 :(得分:0)
如果其他人有此问题:
在您的tabPos[pdx]
子类中,覆盖tabPos[dx]
,然后插入添加阴影的代码。最后,确保将void taupe(void){
int current_time = glutGet( GLUT_ELAPSED_TIME );
float dt = (float)(current_time - start_time) / interval;
if (dt > 1.0f)
dt = 1.0f;
float interx = tabPos[pdx] * (1.0f - dt) + tabPos[dx] * dt;
glPushMatrix();
glTranslatef(interx,dy,tabPos[dz]); // Ligne Milieu droite
glColor3f(0.8,0.3,0.5);
glutSolidCube(2);
glPopMatrix();
}
作为代码的最后一行。
UITableViewCell
然后在视图控制器内部实现layoutSubviews
委托方法,将单元格转换为单元格子类,并在主线程上调用super.layoutSubviews()
override func layoutSubviews()
configureShadow() // <-- insert shadow code here, or create a method
super.layoutSubviews()
}