基本上我想要做的是在UICollectionView中有一個單元,它的哪一部分將響應點擊,而其中的一部分則不會。 這個單元格將是一個正常的單元格,它在點擊時展開,顯示不會響應點按的展開區域的子視圖。使UICollectionViewCell的一部分不可點擊
我考慮擴大細胞,並添加一個子視圖它上面,這將不可點擊。但我認爲這是完成它的一種「壞」方式。
有沒有這樣做的最好方法?
這就是我想要做的:
任何幫助表示感謝,謝謝!
基本上我想要做的是在UICollectionView中有一個單元,它的哪一部分將響應點擊,而其中的一部分則不會。 這個單元格將是一個正常的單元格,它在點擊時展開,顯示不會響應點按的展開區域的子視圖。使UICollectionViewCell的一部分不可點擊
我考慮擴大細胞,並添加一個子視圖它上面,這將不可點擊。但我認爲這是完成它的一種「壞」方式。
有沒有這樣做的最好方法?
這就是我想要做的:
任何幫助表示感謝,謝謝!
隨着選擇
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;
你必須返回一個單元格,並在此功能,您應該確定電池是否是可以點擊的,然後簡單地做
cell.userInteractionEnabled = shouldAllowTouch;
你需要繼承UICollectionViewCell
,那麼覆蓋hitTest:withEvent
而不是pointInside:withEvent
,在hitTest:withEvent:
之內,您應該定義targetRect
,然後檢查點用戶點擊是否在targetRect
之內。
這是在我的tableViewCell
(collectionViewCell
類似)上工作的代碼。
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
CGRect targetRect = CGRectMake(0, 0, CGRectGetWidth(self.bounds), 20);
if (CGRectContainsPoint(targetRect, point)) {
return nil;
} else {
return [super hitTest:point withEvent:event];
}
}
但是,這將使所有單元格不可點擊,並且我想讓頂部保持可點擊狀態,如圖所示。 – xicocaio
您可以製作不可點擊的單元格視圖 –
或者讓您不希望在其自己的單元格中選擇的內容,並且使該單元格的用戶交互功能未啓用 –