瘋狂猜圖中的圖片放大縮小功能的實現

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *questionImageBtn;
@property (strong, nonatomic) UIButton *mask;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

//解決狀態欄黑掉的方法
- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}


- (UIButton *)mask
{
    if (_mask == nil) {
        //1,新增一個蒙版
        _mask = [[UIButton alloc] initWithFrame:self.view.bounds];
        //背景色及其透明度
        _mask.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.5];//0.5是顔色的透明度
        _mask.alpha = 0;
        [_mask addTarget:self action:@selector(smallImage) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:_mask];
    }
    return _mask;
}
//放大或者縮小圖片
- (IBAction)bigImage:(id)sender {
    
    if (self.mask.alpha == 0) {
        //放大圖片
        
        //1,顯示蒙版
        self.mask.alpha = 1;
    
        //2,將圖片放到最外層
        [self.view bringSubviewToFront:self.questionImageBtn];
    
        //3,放大圖片
    
        NSInteger bigImageWith = self.view.bounds.size.width;
        NSInteger bigImageHeight = bigImageWith;
    
    
        NSInteger bitImageX = 0;
    
        NSInteger bigImageY = (self.view.bounds.size.height-bigImageHeight)*0.5;
    
        
        [UIView animateWithDuration:1 animations:^{
            self.questionImageBtn.frame = CGRectMake(bitImageX, bigImageY, bigImageWith, bigImageHeight);
        }];
    }else{
        //縮小圖片
        [self smallImage];
    
    }
    
}

- (void)smallImage
{
    [UIView animateWithDuration:1 animations:^{
        //1,圖片回到初始狀態
        self.questionImageBtn.frame = CGRectMake(85, 98, 150, 150);
    } completion:^(BOOL finished) {
        //2,蒙版透明度變爲0
        [UIView animateWithDuration:1 animations:^{
             self.mask.alpha = 0;
        }];
    }];
}

@end


更多相關文章
  • Linux內核設計的藝術:圖解Linux操作系統架構設計與實現原理
    Linux內核設計的藝術:圖解Linux操作系統架構設計與實現原理     關于Linux內核的書已經不計其數,但<Linux內核設計的藝術>卻是獨樹一幟的,它的內容代表著Linux內核研究成果的世界頂尖級水平.<Linux內核設計的藝術>一書,體現了我們設計新操作系統的過程 ...
  • private final class TouchListener implements View.OnTouchListener {         /** 記錄是拖拉照片模式還是放大縮小照片模式 */         private int mode = 0;// 初始狀態         /* ...
  • Android中圖片的處理(放大縮小,去色,轉換格式,增加水印等),多張圖片四個方位的圖片合成,改變bitmap大小,圖片去色等功能   Java代碼  package com.dzh.operateimage;    import android.graphics.Bitmap;    impor ...
  •           Android之PhtoView設置圖片放大縮小後,當調用mAttacher = new PhotoViewAttacher(imageView) .圖片顯示在界面上左上角.在網上找了好久也沒找到解決辦法,看來只能靠自己了.           找到源代碼,發現裏面有個Photo ...
  • http://blog.csdn.net/hanghangaidoudou/article/details/6436074http://wenku.baidu.com/view/96ab202b647d27284b735126.htmlhttp://www.eoeandroid.com/forum. ...
  • Java OCR tesseract 圖像智能字符識別技術 Java代碼實現
    接著上一篇OCR所說的,上一篇給大家介紹了tesseract 在命令行的簡單用法,當然了要繼承到我們的程序中,還是需要代碼實現的,下面給大家分享下java實現的例子.拿代碼掃描上面的圖片,然後輸出結果.主要思想就是利用Java調用系統任務.下面是核心代碼:package com.zhy.test; ...
  • import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import j ...
  • IM系統中聊天記錄模塊的設計與實現
    看到很多開發IM系統的朋友都想實現聊天記錄存儲和查詢這一不可或缺的功能,這裏我就把自己前段時間爲傲瑞通(OrayTalk)開發聊天記錄模塊的經驗分享出來,供需要的朋友參考下.一.總體設計1.存儲位置 從一開始我們就打算在服務端和客戶端本地同時存儲聊天記錄,而且,在客戶端查看聊天記錄時,可以選擇是從本 ...
一周排行
  • 看到標題,說實話,我都被自己這個標題嚇到了,或者是笑到了.我想說,這次我是認真的,真的不想再用QQ了.這只是一個個人的決定,我不想在這討論關于這個決定的對錯,以及以後會給我的生活帶來多少的影響,或好或壞.就當作是在看 ...
  • 一.事例代碼 代碼其實網路上到處都是,隨便打開一個網站,右擊查看源代碼O了,一份完整的html源代碼.但是別人的網站,總是很多亂七八糟的,在這裏,給大家一份簡單點的代碼來做爲例子吧.我們今天就就講head部分 屬性 ...
  • android  WARNING: Application does not specify an API level requirement! 創建專案時沒有指定Min SDK Version: Android 1 ...
  • 2014年GDG西安 -- DevFest Season1
    今年9月21日,GDG西安組織了第一季以Android Wear爲專題的活動,葡萄城則以超 ...
  • 1,在應用技術方面:分析技術主要有:HTTP協定頭信息技術,第一方COOKIE,第三方COOKIE,P3P協定COOKIE,LSO技術以及Web Beacons和javascript技術. 2,系統核心工作流程:   ...
  • 一.卸載原來的mysql:卸載一:輸入:#rpm -qa | grep -i mysql顯示:mysql-libs-5.1..el6_0.1.i686卸載方法:yum -y remove mysql-libs ...
  • 1線程的創建與運行接口Runnable覆蓋run方法Thread thread = Thread(Runnable r,String name); thread.start();線程信息thread中包含id  na ...
  • 武媚娘傳奇 台灣版國語繁體中字全96集HD720P/1080PMP4百度雲
    台灣版一刀未剪,僅影片敘述方式做了一些修改,改爲了倒敘式,在劇情或者演員衣著上未做任何修改 ...
  • TProfiler是一個可以在生産環境長期使用的效能分析工具.它同時支持剖析和采樣兩種方式,記錄方法執行的時間和次數,生成方法熱點 對象創建熱點 線程狀態分析等數據,爲查找系統效能瓶頸提供數據支持.TProfiler ...
  • Infoys目前在熱招Oracle EBS Fin/Dist/SCM/MFG/OTM/ASCP/Primavera,Base地點在上海/北京,Onsite和Offshore的project都有, 歡迎大家咨詢.Inf ...