我有一個UICollectionView,其中每個UICollectionViewCell都有一個UIButton作爲子視圖。 UIButtons響應點擊沒有問題(它們的目標被觸發),但是按鈕本身不會改變到選定狀態(按鈕的外觀和感覺沒有變化)。我有一個預感,這是因爲UICollectionViewCell沒有正確地將其觸摸事件轉發給按鈕,但我不確定。即使這樣,在這種情況下,我該如何設置,以便按鈕的狀態正確變化?UICollectionViewCell中的UIButton子視圖不改變控制狀態
回答
的UIScrollview
(因此UICollectionView
太)有一個名爲delaysContentTouches
屬性,默認情況下它被設置爲YES ,這種改變NO和你的按鈕應突出像它應該。
如果我可以建議的替代方案,UICollectionView有稱爲真棒委託方法
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { }
可能處理click到該小區......如果你正在尋找特定事件發生就像看到的圖像更改到按鈕的狀態,你可以硬編碼在...當用戶按下按鈕做一兩件事,當他們釋放按鈕做的另一件事....
根據文檔以及
UIControlStateSe被選中 控件的選定狀態。對於許多控件,這個狀態對行爲或外觀沒有影響。但其他子類(例如UISegmentedControl類)可能會根據其所選狀態而有不同的外觀。您可以通過選定的屬性檢索並設置此值。
在laymens方面。對於一個UIButton「選定國」什麼也不做......
如果按鈕是假設它的點擊時變暗,並且它沒有這樣做,那麼你可能不得不這樣做如果編程,但我不完全知道你正在嘗試做的...
調光功能與突出顯示的狀態
UIControlStateHighlighted 強調了控制的狀態。當觸摸進入和退出過程中以及觸摸事件發生時,控件進入此狀態。您可以通過突出顯示的屬性檢索並設置此值。
在laymens方面,你觸摸它強調
按鈕,看看是否按鈕改變狀態正常,你可以做這樣的事情
[button addTarget:self action:@selector(functionToCall:) forControlEvents:UIControlEventAllTouchEvents];
NSLog(@"Selected: %i", button.selected);
NSLog(@"Highlighted: %i", button.highlighted);
NSLog(@"Normal State or not: %i", button.state);
的「functionToCall將被調用時,任何類型的touch甚至發生在按鈕上,並且在那個函數中你可以使用這3個NSLogs將打印到你的控制檯的不同的UIControlState值,這將顯示按鈕工作正常,並顯示它可能是一個UIViewCollection錯誤,如果它是UICollectionView ...然後您將不得不以編程方式調暗按鈕:3
希望這有助於!
我嘗試以編程方式將按鈕設置爲突出顯示的狀態,但它仍然無效。 – 2013-05-05 01:20:51
- 1. UICollectionViewCell不繪製子視圖
- 2. 製作的UIButton中的子視圖訪問父視圖 - 控制
- 3. UIButton不會改變選定狀態
- 4. 定製UIcollectionViewCell,使用視圖來控制顏色的變化
- 5. 訪問子控件的視圖狀態
- 6. 添加視圖控制器到UICollectionViewCell
- 7. 的UIButton狀態變化
- 8. 如何改變的iOS狀態欄的顏色在兒童視圖控制器
- 9. 在一個狀態視圖控制器
- 10. 視圖狀態和控制狀態之間的區別
- 11. 無法加載視圖狀態。視圖狀態必須匹配的控制樹。
- 12. 上改變方法與輸入子陣營控制父狀態
- 13. 爲不同狀態更改UIButton的漸變
- 14. asp.net 4.0:datagrid使用控制狀態或視圖狀態
- 15. UIButton不會改變圖像
- 16. UIButton不會改變圖像
- 17. 背面的離子嵌套狀態不會改變狀態
- 18. 角UIRouter不與孩子狀態改變
- 19. 添加子視圖UICollectionViewCell
- 20. 用戶控件中的視圖狀態
- 21. UICollectionViewCell子視圖大小不正確
- 22. ASP.net FileUpload控制不保持多視圖面板的狀態
- 23. UIButton的圖像不是Hightlight更改或選擇狀態
- 24. 分段控制改變時更改視圖控制器
- 25. 更改視圖狀態
- 26. UIButton狀態改變不會發生,直到接觸結束
- 27. 在RecyclerView中更改視圖的狀態
- 28. LoginView控制登錄或註銷時不改變狀態
- 29. 無法加載視圖狀態。到正在被加載的視圖狀態控制樹必須與用來保存控制樹匹配視圖狀態
- 30. 反應本機列表視圖不改變狀態改變的風格
美麗!完美工作。爲了好奇,下面是該屬性的相關文檔:一個布爾值,用於確定滾動視圖是否延遲觸摸手勢的處理。 如果此屬性的值爲YES,那麼滾動視圖會延遲處理向下觸摸手勢,直到它可以確定滾動是否爲意圖。如果值爲NO,滾動視圖會立即調用touchesShouldBegin:withEvent:inContentView :.默認值是YES.' – 2013-10-24 03:01:48