添加水印,這個需求要求調研時,因為是新的技術點,查閱了一些資料。資料中統統都說:獲取界面的rgb值,將需要加密的信息翻譯成二進制,通過位運算,添加到每個rgb值的二進制末尾實現。解碼時線取界面的rgb二進制值,通過位運算,得出加密信息的二進制即可。
網上給了一些獲得界面rgb的方法,我按照其方法獲得,打印輸出觀察。無法分辨rgb的的開始和結束位置,并且大都相同。我將我查找的結果和疑問和同事討論,當時也是無解。繼續在網上找了兩三天,無果,就放棄了。
在忙著開發其他需求時,添加水印的難題,被同事解決了。現記錄于此。
方法是,在window的layer(選用window的layer,只需添加一次,每個界面都能有水印顯示。)上,添加一個水印layer(CATextLayer 對象),水印layer有string屬性,根據水印layer的寬高,拼接多個水印信息,設置背景色backgroundColor透明,調節文字的前景色foregroundColor,使文字微微可見,在設置wrapped = yes,string 大于layer的寬度,自動換行。
此方法,如此簡單微妙,贊!
新聞熱點
疑難解答