本篇用来累计开发iOS应用时的小技巧
1.点击按钮后,如何获取按钮所在的cell?
UIButton* btn = (UIButton*)sender;
UIView *cell = btn.superview;
while (![cell isKindOfClass:[UITableViewCell class]]) {
cell = cell.superview;
}
这样使用的话,就不用区分当前sdk版本了。这个方法可以扩展,用于获取父类中,第一个UITableView等。
2.如何在UITableViewCell中添加一个控件,控件位置在cell.textLabel的右上方,其他空间使用默认的,如imageView,accessoryView?
因为只添加了一个额外的空间,不想去修改UI,直接在代码中实现,于是自动计算控件位置。但是发现,在View显示前获取到的cell.textLabel的frame都是0,自己添加的控件
一直都显示不到预期的位置。最后解决方法,在显示后,再重新加载数据。
- (void)viewDidAppear:(BOOL)animated
{
[myTableView reloadData];
}
3.在UI上更新下载进度时,显示的进度会闪烁,怎么解决呢?
当下载进程返回进度值,要更新到界面上时,要先UILabel.text=@"80%";,然后再[UILabel setText:@"80%"]即可。