利用KVO監視乙個view的frame

2022-02-14 18:25:21 字數 537 閱讀 7027

首先,keypath一定是frame,而不是frame.origin.x之類的路徑,因為再點下去的話,就是訪問結構體內部的值了,kvo是無法檢測的,會報錯找不到keypath。

**如下:

1     [_funcmenuvc.view addobserver:self forkeypath:@"

frame

" options:nskeyvalueobservingoptionold | nskeyvalueobservingoptionnew context:nil];

在kvo對應的方法裡列印監測到的值,會發現是乙個nsrect型別,為了方便操作需要轉化為cgrect,經過嘗試發現kvo內部其實是用nsvalue包裝了被監測的結構體,所以首先需要將change的內容轉化為nsvalue,然後解出結構體:

1     cgrect rect = [((nsvalue *)[change objectforkey:@"

new"]) cgrectvalue];

這樣就可以進行進一步操作了。

rn實現乙個view的拖拽

通過新增手勢事件 dx 和 dy 從觸控操作開始到現在的累積橫向 縱向路程 movex 和 movey 最近一次移動時的螢幕橫 縱座標 numberactivetouches 當前在螢幕上的有效觸控點的數量 stated 和之前一樣,用來識別手指的id vx 和 vy 當前橫向 縱向移動的速度 x0...

使用Xib封裝乙個view的步驟

1.新建乙個xib檔案苗說view的內部結構 假設叫做cztgcell.xib 2.新建乙個自定義類 自定義類需要繼承自系統自帶的view,繼承自哪個類,取決於xib根物件的class 3.新建類的類名最好跟xib的檔名保持一致 比如類名叫做cztgcell 4.講xib中的控制項和自定義類的.m檔...

MONyog 又乙個mysql監視工具

monyog mysql monitor and advisor 在本機裝客戶端監視mysql,基於網頁的,安裝完了會開乙個本地的web服務。可以監視多個伺服器,並且針對各種配置有一些優化的意見。網頁主要基於js,似乎還可以自己修改。另外這裡還提供乙個mysql gui的工具。有企業版和免費版。用著...