上面提到乙個朦朧遮罩的實現方式
並且前提先要了解清楚:
- (nullable uiview *)hittest:(cgpoint)point withevent:(nullable uievent *)event;
hittest這個方法結合uiwindow,經常來配合使用,比較多的場景有置頂操作,朦朧遮罩層的實現等等
最重要的功能是這個方法可以穿透檢視層,這樣你可以鎖定你要響應的物件,這裡記住這個話,以後大大有所用
一、定義uiwindow類,作為響應罩面:
#import @inte***ce overheadview : uiwindow
@end
實現:
#import "overheadview.h"
@implementation overheadview
- (uiview *)hittest:(cgpoint)point withevent:(uievent *)event
return nil;
}@end
稍微解釋一下:出現朦朧遮罩面時候,返回obj響應物件,否則,穿透該window層級(無視它)
二、定義遮罩層檢視
#import #import "hyroundmenumodel.h"
typedef enum : nsuinteger
hyroundmenuviewbackgroundviewtype;
@inte***ce hyroundmenuview : uicontrol
@property (nonatomic, assign) uiblureffectstyle blureffectstyle;
@property (nonatomic, nonnull, copy ) uicolor *custombackgroundviewcolor;
@property (nonatomic, assign) hyroundmenuviewbackgroundviewtype backgroundviewtype;
+ (__nonnull instancetype) shareinstance;
@end
實現:
#import "hyroundmenuview.h"
#import "overheadview.h"
#define ih_device_height [[uiscreen mainscreen] bounds].size.height
#define ih_device_width [[uiscreen mainscreen] bounds].size.width
@inte***ce hyroundmenuview ()
@property (nonatomic, nonnull, strong) uiview *backgroundview;
@property (nonatomic, nonnull, strong) overheadview *topview;
@end
@implementation hyroundmenuview
static hyroundmenuview* _instance = nil;
+(instancetype) shareinstance
) ; return _instance ;
}- (instancetype) init
return self;
}- (void)initui
[_backgroundview setframe:self.bounds];
[self addsuperview];
}- (void)addsuperview
- (void)startbackgroundviewanimationisopen:(bool)ismasking
]; }
else
completion:^(bool finished) ];
}}static bool ismasking = false;
- (void) touchesbegan:(nsset*)touches withevent:(uievent *)event
- (uiview *)hittest:(cgpoint)point withevent:(uievent *)event
@end
具體實現,也沒什麼好說的,千萬記得hittest在這裡面的功用就行了,其實遮罩層的hittest方法並沒有達到什麼作用,但是為什麼保留呢?
因為這個方法在「過濾」的效果非常好用,以後在別的需求會講到這個方法的作用
JS 層的遮罩效果
在網上看到乙個,用js寫的層的遮罩效果。和大家分享一下。css樣式,如下 js實現,如下 html 如下 input id button1 type button value 點選彈出層 onclick showdiv mydiv fade div id fade class black overl...
clip的text值設定文字遮罩效果
在background clip中有乙個屬性值是text。用於讓裁剪區域限制於容器中的文字內。可以讓背景圖呈現在文字區域內,實現用影象填充文字的神奇效果。有一下幾點需要注意 1.需要配合webkit的另乙個私有屬性 webkit text fill color 來實現。2.僅適用於webkit系核心...
酷炫的滑鼠滑過新增遮罩層效果
今天,沒錯又是今天,今天做的事情還真是多呢 還修了洗衣機,貌似除了寫 不行,樣樣都行了呢 自己感受下 我是小可愛 怎麼樣,有沒有覺得很有趣 原網頁上的 沒有發現它全部的實現原理。上邊這個是我根據它的部分自己新增的,所以不知道是不是最優的方法,但效果是一樣一樣的 總結起來就是 1.插入遮罩層,設定它的...