我很困惑,爲什麼下面的代碼工作,如果我把它添加到awakeFromNib
或initWithFrame:
,但不工作,如果我將它添加到drawRect:
或直接調用它?CALayer in awakeFromNib vs drawRect
self.layer.cornerRadius = CGRectGetWidth(self.bounds)/2.0f;
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowRadius = 3;
self.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
self.layer.shadowOpacity = 0.75f;
對於編程創建的按鈕,我應該在哪裏這個方法添加到?該按鈕可能僅在init
之後創建,並且大小稍後會通過約束進行更改。
規範:通過工作,我的意思是按鈕將圓角(如果長寬比爲1:1時爲圓形)並帶有陰影。不工作,我的意思是它仍然是一個正方形。
你爲什麼要從'drawRect'調用它?你重寫該方法來繪製而不是思考。 – trojanfoe
'對於編程式創建的按鈕,我應該在哪裏添加此方法?這個按鈕可能只是通過初始化和大小通過約束來改變。「 - 這就是爲什麼。還有,因爲我不知道還有什麼地方可以調用它:) –
'drawRect:'在'init ...'&'awakeFromNib'之後被調用,直到窗口或視圖的圖層已經創建完畢。你再次需要更新它們。 –