我有一个带有几个子视图的UICollectionView子类。单元格类包含一种方法,该方法应使单元格中的一个子视图(timerView)动画化。问题是,尽管NSLog()语句表明正在更改框架,但是什么也没有发生。子视图的框架没有变化。如何使subView的框架发生变化?
UIView *superView = self.timerView.superview;
//Force the border view to layout so we can get the size
[superView layoutIfNeeded];
NSLog(@"%@", NSStringFromCGRect(superView.frame));
self.timerView.frame = CGRectMake(0, 0, 0, superView.frame.size.height);
NSLog(@"%@", NSStringFromCGRect(self.timerView.frame));
[UIView animateWithDuration:duration animations:^{
self.timerView.frame = self.timerView.superview.frame;
} completion:^(BOOL finished) {
if (completion) {
completion();
}
}];
答案 0 :(得分:1)
嗯,答案很简单,但是花了我几个小时才能解决。我正在使用function GetFileNameDate($location) {
$files = scandir($location);
$path = $location;
foreach ($files as $file) {
$iterator = new DirectoryIterator($path);
$mtime = 0;
$file = "";
foreach ($iterator as $fileinfo) {
if ($fileinfo->isFile()) {
if ($fileinfo->getMTime() > $mtime) {
$file = $fileinfo->getFilename();
$mtime = $fileinfo->getMTime();
}
}
}
return array($path, $file, $mtime);
}
}
foreach ($arrValues as $row){
$locations = array(rtrim($row['Folder']));
foreach ($locations as $FolderPath) {
$FileNameDate = GetFileNameDate($FolderPath);
echo $FileNameDate[0]; #folder
echo $FileNameDate[1]; #file
echo $FileNameDate[2]; #date
}
}
检索对UICollectionViewCell
中的目标collectionView: didSelectItemAtIndexPath:
的引用。这意味着,由于出队,被引用的单元并不总是我认为的单元。最后,我从单元格创建了一个自定义委托回调,因此我可以拥有自己的collectionView: cellForItemAtIndexPath:
方法,该方法也可以传递单元格本身。这样,我知道我要处理的单元始终是我认为的单元,然后动画开始工作。
我只有在开始遇到属性问题时才意识到这一点,我知道当通过其他方法访问时,我设置为didSelectItem...
。所以我意识到一个新的单元正在出队。
感谢所有帮助,对不起,这有点太疯狂了。