iOS中超出父檢視的按鈕點選事件響應處理
在iOS開發中會遇到一些設計樣式,需要把按鈕一部分懸空在父檢視的上面,但是當我們點選該按鈕時,超出了父檢視的懸空部分不會響應該按鈕的點選事件。
原理就是iOS的touch事件的相應是從最下方的父檢視開始的,系統判斷點選的座標點上沒有子檢視,所以不再響應,該原理可參見之前寫過的這篇文章,
效果圖如下,寫評論這個按鈕需要做處理。
然後,分析一下程式碼,這裡主要說一下核心程式碼吧。在自定義的UIView檢視類中,我們重寫點選檢視的方法,
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
UIView * view = [
if (view == nil) {
// 轉換座標系
CGPoint newPoint = [commentImageViewconvertPoint:point fromView:self];
// 判斷觸控點是否在button上
if (CGRectContainsPoint(commentImageView.bounds, newPoint)) {
view = commentImageView;
}
}
return view;
}
commentImageView是這懸空的按鈕檢視,這裡用的是一個UIImageView,因為外包美工做的圖Px大小有問題,不然肯定用的UIButton。
相關推薦
iOS中超出父檢視的按鈕點選事件響應處理
在iOS開發中會遇到一些設計樣式,需要把按鈕一部分懸空在父檢視的上面,但是當我們點選該按鈕時,超出了父檢視的懸空部分不會響應該按鈕的點選事件。 原理就是iOS的touch事件的相應是從最下方的父檢視開始的,系統判斷點選的座標點上沒有子檢視,所以不再響應,該原理可參見之前寫過
Button控制元件位置超出父檢視,點選無響應的解決辦法
在日常開發中我們經常和按鈕打交道,但是有時候會碰到比較難處理的問題,就是按鈕不響應點選事件,這時候我們需要從下面幾方面排查。 按鈕不響應的原因 1、按鈕新增到了一個沒有開啟使用者互動的父View上,例如UIImageView,這時候開啟父試圖的互動 view.us
ios 手勢點選子檢視的時候不響應父檢視的點選事件
手勢點選子檢視的時候不響應父檢視的點選事件; 一句程式碼搞定: if( CGRectContainsPoint(_BGView.frame, [sender locationInView:_
iOS 獲取UIWebView上面的按鈕點選事件
在網上看到很多文章都說iOS的UIWebView比較耗記憶體,在我的專案中,最開始我也是用UIWebView來載入網頁的。剛開始載入的是自己拼接成的Html,後來在Html中加入一個按鈕,點選之後用當前的UIWebView去載入網路上的網頁。程式跑起來發現非常耗記憶體,載入幾個網上的網頁之後就爆記憶體警告了,
如何讓超出父檢視區域的子檢視實現點選事件
在父檢視重寫hitTest:withEvent:方法,程式碼如下: - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
openDialog()中確定按鈕點選事件
openDialog()中確定按鈕點選事件 本文是我在開發過程中,遇到的也是我不知道的知識,所以此篇僅當做自己以後借鑑用的,如果能對看官你也有用,榮幸之至。 form.ajaxSubmit 首先,在jeeplus中xxxform.jsp檔案中,一般openDialog()
Android中Recyclerview使用7----條目中按鈕點選事件,在activity中呼叫(介面回撥)
0引入Recyclerview的支援庫 compile 'com.android.support:recyclerview-v7:23.4.0' 1效果圖: 2程式碼: 2.1MainActivity中: <span style="font-size:18p
Android開發中按鈕點選事件的監聽
在Android開發中用到是很正常的事情。那麼為按鈕點選事件新增監聽器是我們開發過程中遇到的常見問題。 1、直接在onCreate( )方法中新增 匿名內部類作為事件監聽器類 protected void onCreate(Bundle savedIn
【Cocos2dx】使用CCControlButton建立按鈕、按鈕點選事件,點選事件中的元件獲取,setPosition的座標問題
按鈕不僅在遊戲,在任何地方都是不可或缺卻又是最基本的東西。在遊戲引擎Cocos2dx中也不例外。 下面用一個例子說明Cocos2dx中如何使用按鈕,同時,如果在Cocos2dx中獲取層,也就是場景、舞臺中的元件。 如下圖,有一個按鈕Clickme,被點選時候與不被點選的時間
Android中的ListView響應item內部按鈕點選事件
ListView可以說是我們在實際開發中最常用到的控制元件了。可以說每一個app都需要用到listview來顯示列表,如果我們需要點選listView的不同按鈕跳轉到不同頁面,具體邏輯在重寫的onItemClick()方法中實現,這裡不多說,不瞭解listVie
解決DialogFragment中自定義佈局的按鈕點選事件無效
在DialogFragment中如果有時會突然發現我們寫的自定義佈局的點選事件無效,如果寫在onCreateView()方法中,如果又重寫了onCreateDialog()方法,建議把控制元件的初始化和
asp.net中的按鈕點選事件
ASP.NET中Onclick和OnserverClick事件的區別 對於伺服器按鈕控制元件(即<asp:Button>型別的按鈕): 伺服器響應事件:OnClick 客戶端響應屬性:OnClientClick 對於html按鈕控制元件(即<input ty
ios button超出父檢視如何響應事件
今天中午吃飯的時候,公司一哥們突然問了我一句,怎麼做一個超出tabBar高度的按鈕,而且還能響應事件,吃完飯之後,我思索了一下,決定動手試試,其實邏輯很簡單,只需要繼承UITabBarContro
list中按鈕點選事件在activity中處理
如果listview中有按鈕,點選事件可以寫到adapter中,但是你想寫到avtivity中,發現以前沒遇到過。這裡就給你們一個方法,利用介面回撥可以實現listview中按鈕點選事件在activity中處理。其實和recycleview差不多,recycle
Android Listview中Button按鈕點選事件衝突解決辦法
今天做專案時,ListView中含有了Button元件,心裡一早就知道肯定會有衝突,因為以前就遇到過,並解決過,可惜當時沒有記錄下來。 今天在做的時候,繼續被這個問題鬱悶了一把,後來解決後,趕緊來記錄下,以便日後參考。 首先,其實Listview中Button按
jquery定義之後的按鈕點選事件,會產生累計的情況
使用jquery的on()方法為元素綁定了點選事件,點選同時傳送請求。完成後看效果,第一次點選沒有問題。再一次點選後發現傳送了兩次請求,後面再點擊發現請求的數量越來越多。當排查之後,發現只有一個元素綁定了事件,而且只調用了一次之後,得出最有可能的一種情況,就是點選事件被累加綁定了。 $("#ad
Android開發20——單個監聽器監聽多個按鈕點選事件
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
觸發子元素的點選事件而不觸發父元素的點選事件
<div class="divone" onclick="divone(this)"> <div class="divchild" onclick="divchild(this)"></div> &
Cell左滑時無法響應左滑按鈕點選事件的定位
剛開始,開發一個新功能,需要用到左滑編輯,刪除功能。程式碼如下: - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { //第二組可以
實現點選穿透、執行下層檢視的點選事件
原文 , 只記錄我看懂的部分 http://www.cnblogs.com/klaus/archive/2013/04/22/3036692.html iOS系統檢測到手指觸控(Touch)操作時會將其放入當前活動Application的事件佇列,UIApplic