需求 23 帶朦朧的遮罩效果 2

2021-07-31 06:32:12 字數 2377 閱讀 8430

上面提到乙個朦朧遮罩的實現方式

並且前提先要了解清楚:

- (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.插入遮罩層,設定它的...