效果圖:
注意:maskview是ios8中新出的,用以簡化alpha遮罩的操作,與layer的mask是一回事,想要修改相容的,請考慮使用layer的mask來滿足你的需求.
特點:* 方塊的個數可以自己設定
* 你可以實現你自己的策略來設定漸變消失的方式
核心原始碼:
//
// tranformfadeview.h
// transformationfadeview
//// created by xianmingyou on 15/4/16.
//#import @inte***ce tranformfadeview : uiview
/** * image顯示方式
*/@property (nonatomic) uiviewcontentmode contentmode;
/** * 要顯示的相片
*/@property (nonatomic, strong) uiimage *image;
/** * 垂直方向方塊的個數
*/@property (nonatomic) nsinteger verticalcount;
/** * 水平方向方塊的個數
*/@property (nonatomic) nsinteger horizontalcount;
/** * 開始構造出作為mask用的view
*/- (void)buildmaskview;
/** * 漸變動畫的時間
*/@property (nonatomic) nstimeinterval fadeduradtion;
/** * 兩個動畫之間的時間間隔
*/@property (nonatomic) nstimeinterval animationgapduration;
/** * 開始隱藏動畫
* * @param animated 是否執行動畫
*/- (void)fadeanimated:(bool)animated;
/** * 開始顯示動畫
* * @param animated 時候執行動畫
*/- (void)showanimated:(bool)animated;
@end
//
// tranformfadeview.m
// transformationfadeview
//// created by xianmingyou on 15/4/16.
//#import "tranformfadeview.h"
#define statr_tag 0x19871220
@inte***ce tranformfadeview ()
/** *
*/@property (nonatomic, strong) uiimageview *imageview;
/** * 所有的maskview
*/@property (nonatomic, strong) uiview *allmaskview;
/** * maskview的個數
*/@property (nonatomic) nsinteger maskviewcount;
/** * 儲存maskview的編號
*/@property (nonatomic, strong) nsmutablearray *countarray;
@end
@implementation tranformfadeview
/** * 初始化並新增
* * @param frame frame值
*/- (void)initimageviewwithframe:(cgrect)frame
- (instancetype)initwithframe:(cgrect)frame
return self;
}- (void)buildmaskview
// 承載所有的maskview
self.allmaskview = [[uiview alloc] initwithframe:self.bounds];
self.maskview = self.allmaskview;
// 計算出每個view的尺寸
cgfloat height = self.frame.size.height;
cgfloat width = self.frame.size.width;
cgfloat maskviewheight = self.verticalcount <= 1 ? height : (height / self.verticalcount);
cgfloat maskviewwidth = self.horizontalcount <= 1 ? width : (width / self.horizontalcount);
// 用以計數
int count = 0;
// 先水平迴圈,再垂直迴圈
for (int horizontal = 0; horizontal < self.horizontalcount; horizontal++)
}self.maskviewcount = count;
// 儲存
self.countarray = [nsmutablearray array];
for (int i = 0; i < self.maskviewcount; i++)
}/**
* 策略模式一
* * @param inputnumber 輸入
* * @return 輸出
*/- (nsinteger)strategynormal:(nsinteger)inputnumber
- (void)fadeanimated:(bool)animated completion:^(bool finished) ];
}} else
}}- (void)showanimated:(bool)animated completion:^(bool finished) ];
}} else
}}/**
* 根據tag值獲取maskview
* * @param tag maskview的tag值
* * @return tag值對應的maskview
*/- (uiview *)maskviewwithtag:(nsinteger)tag
/* 重寫setter,getter方法 */
@synthesize contentmode = _contentmode;
- (void)setcontentmode:(uiviewcontentmode)contentmode
- (uiviewcontentmode)contentmode
@synthesize image = _image;
- (void)setimage:(uiimage *)image
- (uiimage *)image
@end
需要注意的細節:
C 控制項 MenuStrip控制項(選單控制項)
一 概述 選單通過存放按照一般主題分組的命令將功能公開給使用者。menustrip 控制項是此版本的 visual studio 和 net framework 中的新功能。使用該控制項,可以輕鬆建立 microsoft office 中那樣的選單。menustrip 控制項支援多文件介面 mdi ...
隱藏控制項 HiddenField控制項
hiddenfield 控制項hiddenfield 控制項顧名思義就是隱藏輸入框的伺服器控制項 它能讓你儲存那些不需要顯示在頁面上的且對安全性要求不高的資料。也許這個時候應該有這麼乙個疑問,為什麼有了 viewstate session 和cookie 等狀態儲存機制,還需要用起 hiddenfi...
標籤控制項 CTableCtrl 控制項
前言 區別 ctablectrl和cpropertysheet.乙個是控制項,另乙個是對話方塊屬性類 目錄 0.訊息彙總 1.常用方法總結 0.訊息彙總 1.常用方法總結 定義視窗資源以及和類進行相關繫結物件兩個,標籤控制項新增兩個子項.建立視窗,設定相關區域,移動視窗.原始碼 m tab.inse...