1. 程式人生 > >多個UIImageView新增tap事件 並分別進行處理

多個UIImageView新增tap事件 並分別進行處理

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    
    //初始化
    isSelected = NO;
    
    UIImageView *imageView;
    UIImage *image;
    int i;
    int x;//x座標
    int y;//y座標
    //建立觸發器
    
    
    for (i=0; i<9; i++) {
        image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i+1]];
        imageView = [[UIImageView alloc] initWithImage:image];
        //建立imageview座標
        x = (i%3)*102;
        y = (i/3)*152+2;
        imageView.frame = CGRectMake(x, y, 100, 150);
        //標記tag
        imageView.tag = i;
        //要早imageView上新增tag事件  必須設定 userInteractionEnabled 屬性值為YES 
        imageView.userInteractionEnabled = YES;
        UITapGestureRecognizer * tgr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClick:)];
        //在uiview上面新增觸發器
        [imageView addGestureRecognizer:tgr];
        //填充方式
        imageView.contentMode = UIViewContentModeScaleAspectFit;
        [self.view addSubview:imageView];
        [imageView release];
    }
    
}
-(void)onClick:(UIGestureRecognizer *)sender
{
    
    int i = sender.view.tag;
    
    
    for (UIImageView *imageView in self.view.subviews) {
        if (imageView.tag == i) {
            
            if (isSelected==NO) {
                imageView.frame = CGRectMake(0, 0, 320, 460);
               // imageView.contentMode = UIViewContentModeScaleAspectFill;
                imageView.center = self.view.center;
                //將點選的圖片放到最上層 會更改陣列的順序
                [self.view bringSubviewToFront:imageView];
                isSelected = YES;
            }else{
                imageView.frame = CGRectMake((i%3)*102, (i/3)*152+2, 100, 150);
                //imageView.contentMode = UIViewContentModeScaleToFill;
                isSelected = NO;
            }
        
        }
    }
    
    for(UIImageView *imageView in self.view.subviews){
        if (imageView.tag != i) {
            if (isSelected == YES) {
                imageView.hidden = YES;
            }else{
                imageView.hidden = NO;
            }
        }
    }
    
    



}


相關推薦

UIImageView新增tap事件 分別進行處理

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. //初始化 isS

jquery實現根據不同class為按鈕新增點選事件

一、實現功能 在專案中需要新增幾個button來實現點選不同的button就可以設定字母的顏色。但是button上面不能有文字。所以不能根據$('button').html()獲取button的文字來

iOS view新增手勢, 識別是哪個view的事件

當多個view新增手勢識別時, 想要區分是哪個view發生的事件, 那麼可以這樣獲得 - (void)setupViews{ CGFloat menuviewTop; for (int i = 0;

C#程序調用cmd.exe執行其他exe進程(並且含參數),把進程結果返回給字符串

() stat syntax || 錯誤 void dia clas ring 1.關鍵代碼部分。 using System.Diagnostics; public class CmdHelper {

php 將txt文件合

dir() pan sca foreach 編碼方式 function gbk div 根據 function test() { $hostdir= iconv("utf-8","gbk","C:\Users\原萬裏\Desktop\日常筆記") ;

RF合output文件,生成新的log和report文件

結果 png 多個 路徑 行合並 保存 rep out ron 合並兩個output文件並生成新的log和report文件命令: rebot -d 合並生成的log和report文件保存路徑 第1個output文件 第2個output文件 通過執行套件層.txt將結

Excel文件合到一個Excel文件的工作表(Sheet)裏

ger xlsx eww 右擊 對話 如果 work excel 對話框 實現的功能是把多個Excel文件的第一個工作表(Sheet)合並到一個Excel文件的多個工作表裏,並且新工作表的名稱等於原Excel文件的文件名。開發環境Excel2007,但是Excel

圖片轉PDF及PDF之間的合

fim ati size ddt text tex 輸出 dpa cat public static void ConvertPicture2PDF(string jpgfile, string pdf) { try { var do

xBIM IFC文件合

web .cn .html 日誌 exce 層次 excel 學習 應用 目錄 xBIM 應用與學習 (一) xBIM 應用與學習 (二) xBIM 基本的模型操作 xBIM 日誌操作 XBIM 3D 墻壁案例

利用Python將excel文件合為一個文件

技術分享 excel文件 AR tails bsp 合並 sdn clas pytho http://blog.csdn.net/betterfate/article/details/71123976 http://blog.csdn.net/d1240673769/

分享如何將pdf文件合成一個pdf?

str 搜索 9.png 首頁 tar view 文件格式 註意 文檔 生活就是零零散散組成的,我們的世界都是零散的,都是由零散的組成一個整體,工作中我們也會遇到很多PDF文件,不過大多都是零散的,接下來就來分享如何將多個PDF文件合並成一個PDF文件。 1在百度中去搜索關

[講解]sql except和intersect運算符(比擬兩select語句的結果前去非重復值)

sts reat rop 實現 create select int inter 兼容 圖 1 UNION 中若有重復的行,會被移除,只留下一個 1.簡介 EXCEPT和INTERSECT運算符使您可以比較兩個或多個SELECT語句的結果並返回非重復值。 2.區別

python中QPushButton響應同一個事件

python中多個QPushButton響應同一個事件 注:在python2 的環境下執行 #! -*- coding:utf-8 -*- from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayou

觀察者模式中執行緒執行訂閱事件順序執行的問題

       對事件釋出訂閱模式中啟動執行緒執行操作,但又要保證執行緒順序執行的一些思考和實踐,在開發過程中,經常會遇到需要使用事件來觸發方法執行的情況,比如CS中按鈕的點選事件,滑鼠移動事件,鍵盤監聽事件等等,有時候需要執行比較耗時的任務,但並不希望阻塞主執

Android開發20——單個監聽器監聽按鈕點選事件

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

JQuery 同時獲取標籤的指定內容儲存為陣列

文章來自:原始碼線上https://www.shengli.me/jquery/271.html       此時的list1的陣列中   每個元素已經不是'li'物件,如此執行控制檯會報錯: &nbs

ubuntu16.04安裝CUDA、cuDNN版本自由切換

之前安裝了CUDA8.0,cuDNN5.1,現在同時想用另一個版本,所以安裝兩個版本的CUDA、cuDNN來回切換這樣就不用來回解除安裝安裝了。 1、下載CUDA9.0 進入到下載的檔案所在目錄 cd ~/Downloads 安裝CUDA sudo sh cuda_

Unity 利用 UnityAction 對按鈕新增監聽

當有許多個按鈕需要新增監聽的時候,我們可以先使用UnityAction把這些方法監聽起來,再分別傳給按鈕。 public UnityEngine.Events.UnityAction[] allEvents = new UnityEngine.Events.UnityAction

php 將檔案壓縮成zip下載到本地

廢話不多說,直接上程式碼 //這裡需要注意該目錄是否存在,並且有建立的許可權 $zipname = 'path/test.zip' //這是要打包的檔案地址陣列 $files = array("

Android同一個TextView裡響應區域點選事件

    專案中遇到這樣的一個需求:物流資訊中會返回一個配送人員的手機號碼,一個投訴電話,根據快遞公司不同,有時候還會返回一個快遞單號,這三個標籤的字型顯示為藍色並且可點選。第一反應是放不同的TextView或者Button分別處理他們的點選事件,當然是不可取的,因為這些物流資訊不止一條,我們看那些電商的物流