1. 程式人生 > >IOS點選效果實現及點選後物件引數的傳遞

IOS點選效果實現及點選後物件引數的傳遞

IOS點選實現的方式:

1、使用UIButton,這個不用說大家都知道:

UIButton *btn=[[UIButton allloc] init];
[btn addTarget:self action:@selector(OnTapBtn:) forControlEvents:UIControlEventTouchUpInside];
OnTapBtn是點選按鈕時呼叫的方法:
-(void)OnTapBtn:(id)sender{
    Button *btn=(Button *)sender;
    //做相應的操作
}

2、為任意的UIView新增點選效果(使用手勢):

UIView *view=[[UIView alloc] init];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(OnTapBtnView:)];
[view addGestureRecognizer:tap];
UITapGestureRecognizer預設點選一次,即與UIButton的點選一樣。點選後呼叫方法:
-(void)OnTapBtnView:(UITapGestureRecognizer *)sender{
    NSLog(@"tag:%ld",sender.view.tag);
}

點選後引數的傳遞:

1、當點選的是按鈕,可以通過自定義按鈕的方式實現引數的傳遞:

自定義按鈕很簡單,只需要設定一個物件屬性即可

@interface MyButton : UIButton

<pre name="code" class="html">//UIButton傳遞的物件
@property(nonatomic,strong) NSObject *btnObj;
@end 然後可以使用
<pre name="code" class="html">MyButton *mBtn=[[MyButton alloc] init];
<pre name="code" class="html">mBtn.btnObj=自定義物件;
//在點選方法中就可以使用下面方式獲取物件
<pre name="code" class="html">-(void)OnTapBtn:(id)sender{
    <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">MyButton</span><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;"> *btn=(MyButton *)sender;</span>
<span style="font-family:Arial, Helvetica, sans-serif;">        </span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">自定義物件=</span><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;">btn.btnObj;//可能會涉及到傳遞物件型別的強制轉化</span><span style="font-family:Arial, Helvetica, sans-serif;">
</span>    //做相應的操作
}
2、當點選的不是按鈕的UIView時候:

有可能你會想到自定義UIView然後如同上面一樣,為自定義的UIView新增屬性,但是實際中這種方式行不通,UIView不允許這樣做。具體實現可以參考:

實現百度糯米中圖片在上文字在下的按鈕的方式(只說思路):

1、自定義UIView:

自定義UIView,在自定義的UIView中新增UIImageView和UILabel

2、自定義按鈕UIButton:

在自定義的按鈕中新增UIImageView和UILabel

3、使用UIButton中的setImageEdgeInsets與setTitleEdgeInsets



相關推薦

IOS效果實現物件引數傳遞

IOS點選實現的方式: 1、使用UIButton,這個不用說大家都知道: UIButton *btn=[[UIButton allloc] init]; [btn addTarget:self action:@selector(OnTapBtn:) forControlEv

android:多次效果實現

public class MainActivity extends AppCompatActivity{ private final static int COUNTS = 5;//點選次數 private final static long VALIDTIME = 1300;/

【React】錨效果實現跳轉定位位置)(內含demo)

錨點:超連結的一種形式,快速定位到想要看的位置,常用在文章目錄等位置。那麼問題來了React不支援原生錨點的書寫方式所以怎麼在React裡實現類似錨點的效果我的解題思路1.在 url裡 使用 anchor 引數2.頁面 解析 是否有anchor引數對應的id3.有對應id的話

textview中點效果實現,比如textview中實現圖片和文字的顏色變化(類似於button)

<TextView android:drawableTop="@drawable/bg_text_view" android:id="@+id/home_toolbar_settings" an

iOS for迴圈建立UIButton處理

{ //宣告一個全域性變數判斷選中的按鈕 UIButton *selectedBtn; } - (void)addButton:(UIView *)view{ NSArray *ar

ios h5 事件失效延遲

1.ios h5 app avalon tap事件失效 使用MUI製作app介面,使用avalon.js渲染資料,發現在(Android上正常)ios上執行時容器div的avalon的ms-on-tap被內容遮住不執行.用MUI的on tap事件可以執行但改動較大,於是

Android中的Button自定義效果之改變時按鈕的顏色

在Android中定義按鈕的點選效果可以通過自定義selector,通過設定兩張不同的背景圖片來改變點選時和未點選時的狀態,但有時候僅僅只想改變點選時按鈕的顏色,但是在selector中並不能直接定義顏色。下面程式碼實現一個點選按鈕時僅僅改變按鈕顏色。 1.

layui全部全(非當前頁全)效果實現

html程式碼如下: 展現效果: 對應全部全選layui程式碼如下: //全部全選 form.on('checkbox(checkall)', function (data) { var child = $(data.elem).par

iOS文字漸變效果實現

1.建立一個顏色漸變層,漸變圖層跟文字控制元件一樣大。 2.用文字圖層裁剪漸變層,只保留文字部分,就會讓漸變層只保留有文字的部分,相當於間接讓漸變層顯示文字,我們看到的其實是被裁剪過後,漸變層的部分內容。 注意:如果用文字圖層裁剪漸變層,文字圖層就不在擁有顯示功能,

Android/安卓仿淘寶直播效果/qq空間效果動畫

之前玩淘寶誤入它的直播頻道,發現它的直播介面的點贊效果挺好看,然後發現QQ控制元件點贊有類似動畫,於是趁有空花了點時間玩玩。 先上個效果圖: 添加了一個按鈕模擬點贊,點選多少次就出現多個水果,他們的運動軌跡和速度是不一樣的,而且帶有淡入淡出效果。這是淘寶直播的效果,qq

IOS 圖片摺疊效果實現

當手指在圖片中上下滑動的時候,圖片的上半部分會有摺疊效果。類似地可以擴充套件到其他需要摺疊的場景中。 layer.contentsRect 用來擷取layer的部分內容重新在frame中渲染。

iOS 簡單動畫效果實現的三種方式

【在ios開發中,動畫是廉價的】 一、首尾式動畫 程式碼示例: // beginAnimations表示此後的程式碼要“參與到”動畫中 [UIView beginAnimations:nil context:nil]; //設定動畫時長

AngularJS進階 八 實現頁面跳轉並進行引數傳遞

angularjs實現頁面跳轉並進行引數傳遞 注:請點選此處進行充電! Angular頁面傳參有多種辦法,我在此列舉4種最常見的: 1. 基於ui-router的頁面跳轉傳參 (1) 在AngularJS的app.js中用ui-router定義路由,比如現在

angularjs實現頁面跳轉並進行引數傳遞

Angular頁面傳參有多種辦法,我在此列舉4種最常見的: 1. 基於ui-router的頁面跳轉傳參 (1) 在AngularJS的app.js中用ui-router定義路由,比如現在有兩個頁面,一個頁面(producers.html)放置了多個producers,點選其

微信小程式實現slideUp、slideDown滑動效果空白隱藏功能示例

本文例項講述了微信小程式實現slideUp、slideDown滑動效果及點選空白隱藏功能。分享給大家供大家參考,具體如下: 怎樣實現jq中的slideUp或者slideDown這種動畫效果呢,我的思路是用css3的transform: translateY() 屬性,給需要動畫的元素新增上一個動畫

iOS -- 通過runtime向Button的方法裡傳遞引數實現效果

效果: 有三個button點選其中一個將其他兩個的選中狀態取消,相當於單選的效果: 由於三個不同是同一型別的按鈕,如果點選三個按鈕都呼叫一個方法將會避免我們的程式碼重複,提高工作效率。那麼要實現這樣的程式碼效果我們就必須在點選方法裡邊將另外兩個button的狀態改變,並且

Android MaterialDesign之水波效果的幾種實現方法

什麼是水波點選的效果? 下面是幾種不同的實現方法的效果圖以及實現方法   Video_2016-08-31_003846 如何實現? 方法一 使用

利用photoView實現放大到全屏顯示的控制元件,效果類似於微信朋友圈點開看大圖

此控制元件繼承自ImageView,實現效果與微信朋友圈點開看大圖相似,點選控制元件後進入沉浸模式全屏顯示大圖,全屏時雙擊或手指拉伸可放大圖片,單擊會退出全屏 老規矩,先上控制元件實現程式碼: /** * 可點選放大全屏顯示的imageView * Created by Administ

thinkPHP5.0框架驗證碼呼叫圖片重新整理簡單實現方法

這篇文章主要介紹了thinkPHP5.0框架驗證碼呼叫及點選圖片重新整理簡單實現方法,結合簡單示例形式分析了thinkPHP5框架驗證碼相關配置、後臺驗證、前臺重新整理等操作技巧,學習 thinkphp原始碼的朋友可以參考下,具體如下:   1、配置檔案中

原生js實現滑鼠切換效果

今天之所以寫一篇關於js的程式碼實現,一方面是因為個人習慣用jquery編寫程式碼,另一方面是因為github這個大平臺拋棄了jquery。 Jquery是一個js庫,極大簡化js程式設計,使用方便,相容性好,這篇文章就以一個例子來說明jq和js的編寫差別。 首先我們看一下效果圖: