2014-03-31 3 views
1

흐름 레이아웃을 사용하여 UICollectionView를 만들려고했습니다. 셀은 당분간 텍스트 레이블입니다. 셀의 첫 번째 화면이 잘 표시되지만 스크롤하려고하면 시뮬레이터가 충돌합니다. 내가 rubymotion의 최신 버전을 사용하고스크롤 할 때 UICollectionView 충돌이 발생합니다.

(lldb) thread backtrace 
    * thread #1: tid = 0x39235a, 0x008440b2 libobjc.A.dylib`objc_msgSend + 14, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xa000000c) 
    * frame #0: 0x008440b2 libobjc.A.dylib`objc_msgSend + 14 
    frame #1: 0x01ab9b30 UIKit`-[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:] + 257 
    frame #2: 0x01abb775 UIKit`-[UICollectionView _updateVisibleCellsNow:] + 4730 
    frame #3: 0x01abf65f UIKit`-[UICollectionView layoutSubviews] + 265 
    frame #4: 0x014e2964 UIKit`-[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355 
    frame #5: 0x0084682b libobjc.A.dylib`-[NSObject performSelector:withObject:] + 70 
    frame #6: 0x0280e45a QuartzCore`-[CALayer layoutSublayers] + 148 
    frame #7: 0x02802244 QuartzCore`CA::Layer::layout_if_needed(CA::Transaction*) + 380 
    frame #8: 0x028020b0 QuartzCore`CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 26 
    frame #9: 0x027687fa QuartzCore`CA::Context::commit_transaction(CA::Transaction*) + 294 
    frame #10: 0x02769b85 QuartzCore`CA::Transaction::commit() + 393 
    frame #11: 0x0276a258 QuartzCore`CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 92 
    frame #12: 0x02bd936e CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30 
    frame #13: 0x02bd92bf CoreFoundation`__CFRunLoopDoObservers + 399 
    frame #14: 0x02bb7254 CoreFoundation`__CFRunLoopRun + 1076 
    frame #15: 0x02bb69d3 CoreFoundation`CFRunLoopRunSpecific + 467 
    frame #16: 0x02bb67eb CoreFoundation`CFRunLoopRunInMode + 123 
    frame #17: 0x05f5b5ee GraphicsServices`GSEventRunModal + 192 
    frame #18: 0x05f5b42b GraphicsServices`GSEventRun + 104 
    frame #19: 0x01473f9b UIKit`UIApplicationMain + 1225 
    frame #20: 0x0002423c 8actions`main(argc=1, argv=0xbfffe610) + 156 at main.mm:15 

와 IOS 시뮬레이터는 IOS 7.1 아이폰 4 인치로 설정 : 디버거는 다음과 같은 메시지를 보여줍니다. 내가 사용하고있는 코드는 여기에서 찾을 수 있습니다 :

https://gist.github.com/jhmegorei/42c15038a34971ac5e8e

참고 : 나는 CollectionViewController를 사용하지 않았다, 나는 정상에 추가 할 수있는 또 다른 뷰 요소로 컬렉션보기를 필요로 UIView. 날이 충돌 :)

+0

[someview addSubview : CollectionViewController.view] 같은 코드를 사용하고 있습니까? – jnix

+0

아니요, 요지에서 볼 수 있듯이 collectionViewController를 전혀 사용하지 않습니다 (API 문서를 읽을 때까지는 아무런 요구 사항이 없습니다). MemoListView.rb 줄 15에서 view에 list_view를 추가합니다. – Imrael

+1

MemoListView.rb에 MemoListViewDelegate.rb의 메서드를 추가하여 작동하도록했습니다. 여전히 그 솔루션을 좋아하지 않지만 적어도 그것은 작동합니다 ... – Imrael

답변

0

더 "MemoListViewDelegate.rb"없다 요점에서의 근본 원인을 조사하는 데 도움이 수있는 사람이 있다면

나는 기쁠 것이다. "MemoListDataSource.rb"를 원하셨습니까? 또한

, 나는 당신이

list_view.dataSource  = self 

뿐만 아니라 거기에서 데이터 소스 방법을 이동하는

list_view.dataSource  = MemoListDatasource.new 

을 변경 의미 가정합니다.

다른 변경 사항을 적용 했습니까?

+0

예, 데이터 소스를 의미합니다. 오타를 유감스럽게 생각합니다. 나는 모든 것을 너무 많이 리팩토링했기 때문에, 나는 그것을 작동하게 만들었던 모든 것을 기억하지 못한다. ^^하지만 내 모든 콜렉션 뷰는 잘 작동한다 : D – Imrael