因此,为了简单起见,我试图获得与iMessage
相同的观点:反向UITableView
。
我有一个旋转的UITableView
:
self.tableView.transform = CGAffineTransformMakeRotation(-M_PI);
每个UITableViewCell也被旋转以正确的方式出现:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc] init];
cell.transform = CGAffineTransformMakeRotation(M_PI);
return cell;
}
当键盘出现时,我的UITableView
的帧会被更改,使我的UITableView
的底部跟随键盘的顶部。键盘隐藏的时候也是一样。要做到这一点,我使用动画。
我的问题是,当键盘隐藏时,UITableView
的帧会增加,并且会显示一些新的单元格。在显示它们时,委托调用tableView:cellForRowAtIndexPath:
,动画也应用于
cell.transform = CGAffineTransformMakeRotation(M_PI);
所以我看到我的新细胞在旋转!
有什么办法可以避免动画的旋转吗?
发布于 2013-12-26 05:24:10
如果不希望动画属性设置为动画,则需要禁用动画:
BOOL wasEnabled = [UIView areAnimationsEnabled];
[UIView setAnimationsEnabled:NO];
cell.transform = CGAffineTransformMakeRotation(M_PI);
[UIView setAnimationsEnabled:wasEnabled];
在iOS 7上,您可以使用[UIView performWithoutAnimation:...]
。
而且,我会避免做
self.tableView.transform = CGAffineTransformMakeRotation(-M_PI);
最后我检查了(iOS 5或6?),这将导致单元格大小不正确,就好像UITableView使用其帧的宽度来决定“宽”单元格的大小一样。将其放在视图中,并设置该视图的转换(或者检查它在您需要支持的每个主要OS版本上是否正确)。
发布于 2013-12-26 05:14:00
嘿,伙计,当你不需要动画时,试着维护一个bool变量,在某些编辑或任何其他事件中将bool变量设置为false。因此,如果是真的话,就把bool变量的条件放到动画中。
问好,祝来年愉快
https://stackoverflow.com/questions/20784794
复制相似问题