Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从iOS 8开始,ViewWithTag不再工作?迅速地_Ios_Swift_Uicollectionview_Ios8 - Fatal编程技术网

从iOS 8开始,ViewWithTag不再工作?迅速地

从iOS 8开始,ViewWithTag不再工作?迅速地,ios,swift,uicollectionview,ios8,Ios,Swift,Uicollectionview,Ios8,我刚刚下载了新的Xcode GM,在经历了一大堆错误之后,我的swift项目运行得非常好(耶!)。然而,今天我尝试在iOS 8设备上安装该应用程序,现在我所有的表和集合视图都破坏了该应用程序。问题来自这样的东西: let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionCellCB", forIndexPath: indexPath) as UICollectionViewCell var pic

我刚刚下载了新的Xcode GM,在经历了一大堆错误之后,我的swift项目运行得非常好(耶!)。然而,今天我尝试在iOS 8设备上安装该应用程序,现在我所有的表和集合视图都破坏了该应用程序。问题来自这样的东西:

let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionCellCB", forIndexPath: indexPath) as UICollectionViewCell

var pic = cell.contentView.viewWithTag(10) as UIImageView
pic.image = DisplayImage;
我已经仔细检查了我的故事板,以确保我有一个具有该重用标识符的单元格和一个具有该标记的uiimage视图,但无论是在这里还是在其他场景中,它都不起作用。 它在我的iOS 7设备上运行正常,但在iOS 8上每次都会中断。我希望这是一个错误,但我不能肯定。还有人遇到这个问题或者知道如何解决它吗


主要的问题是,当我调用viewWithTag时,函数返回nil,而不是像在iOS 7和以前版本中那样返回对视图的引用。

我遇到了同样的问题。某些单元格未显示任何iOS8内容。
viewWithTag
不会返回子视图

似乎没有正确创建单元,并且子视图不存在。以下是具有不同标识符的两个单元格的内容-第一个已损坏,第二个正在工作:

(lldb) po [cell recursiveDescription]
<tSettingsViewCell: 0x7a5d7950; baseClass = UITableViewCell; frame = (0 0; 695 44); text = 'WiFi'; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7a5d7af0>>
   | <_UITableViewCellSeparatorView: 0x7a5d77f0; frame = (15 43; 680 1); layer = <CALayer: 0x7a5d8500>>

(lldb) po [cell recursiveDescription]
<tSettingsViewCell: 0x7a430210; baseClass = UITableViewCell; frame = (0 0; 695 44); text = 'Server'; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7a4301e0>>
   | <UITableViewCellContentView: 0x7a430170; frame = (0 0; 669 44); clipsToBounds = YES; opaque = NO; gestureRecognizers = <NSArray: 0x7a429850>; layer = <CALayer: 0x7a430140>>
   |    | <UITableViewLabel: 0x7a430080; frame = (15 0; 645 44); text = 'Server'; clipsToBounds = YES; opaque = NO; layer = <_UILabelLayer: 0x7a430030>>
   |    | <UITextField: 0x7a42f980; frame = (495 8; 185 30); text = ''; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; tag = 200; layer = <CALayer: 0x7a42fce0>>
   | <_UITableViewCellSeparatorView: 0x7a42ad10; frame = (15 43; 680 1); layer = <CALayer: 0x7a42aad0>>
   | <UIButton: 0x7a42a870; frame = (677 16; 8 13); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7a42a840>>
   |    | <UIImageView: 0x7a4295a0; frame = (0 0; 8 13); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7a429660>>
(lldb)po[单元格递归描述]
| 
(lldb)po[单元递归描述]
| 
|    | 
|    | 
| 
| 
|    | 
情节提要未使用自动布局

我还没弄明白为什么会这样

编辑:


原来自定义单元格过滤掉了顶部分隔符视图(没有将其添加到子视图中),这似乎破坏了一切。在addSubview:(UIView*)视图中将所有子视图传递给super后,它再次开始工作。仍然很神秘…

定义“每次中断”在哪里“中断”?缺少大量相关和必要的信息。当加载/重新加载tableview或collection视图时,它会“中断”,就像在func collectionView(collectionView:UICollectionView,cellForItemAtIndexPath indexPath:NSIndexPath)->UICollectionViewCell中一样{是的,到目前为止,我唯一的解决办法是使单元格成为表/集合viewcells的子类,并通过界面生成器分配iboutlets。这是一个解决办法,不需要我重新设计IB中的实际单元格,但我避免了它,因为我必须为5-6个表这样做,我想,可能是错误的,这是viewwithtag是更受欢迎的方法。