2016-03-07 12 views
0
//setting underline to the bottom of the textfield 
     CALayer *border = [CALayer layer]; 
CGFloat borderWidth = 2; 
border.borderColor = [UIColor darkGrayColor].CGColor; 
border.frame = CGRectMake(0, self.email 
          .frame.size.height - borderWidth, self.email.frame.size.width, self.email.frame.size.height); 
border.borderWidth = borderWidth; 

    [self.email.layer addSublayer:border]; 
    self.email.layer.masksToBounds = YES; 
    [self.password.layer addSublayer:border]; 
    self.password.layer.masksToBounds = YES; 
    [self.confirmPassword.layer addSublayer:border]; 
    self.password.layer.masksToBounds = YES; 
    } 

我想使用相同的邊框對象爲我的每一個文本框,但它是在一個時間只取最後一個子層。如何在不創建更多CALayer實例的情況下將同一圖層添加到所有文本字段?如何同一層對象添加到任何「的UITextField」

+1

不能添加相同的層多層(否則,'superlayer'財產就沒有意義)。當你添加一個圖層到另一個圖層時,它會從其先前的「超級圖層」(父級)中隱式移除。 – omz

回答

2

一層不能一次在兩個地方,任何超過可以一次在兩個地方;一個圖層可以是僅有一個圖層的子圖層。所以,你需要反覆做,使得不同 CALayer的,對於每一個文本字段。

最簡單的方式代碼,在一個地方是:子類的UITextField將圖層加入到本身和管理它的大小,並使用你的子類的實例整個應用程序。

+0

@omz感謝編輯:你可以從我的想法是超前於我的第二個段落是我寫吧:) – matt

+0

OP錯誤之前看到的,採取的是我在回答關於大小說音符。你不會在iOS子層的自動尺寸,所以如果說,你的文本字段改變大小時,應用程序旋轉或任何其他原因後,最初創建層,你會遇到麻煩後,除非你添加代碼來調整手動子層。 – matt

+0

@vishwasparashar現在你在吮吸。不要這樣做。我想我正確回答了你問的問題_,即你的代碼爲什麼不起作用。如果您有新問題,請將其作爲一個新問題 - 不要試圖在評論中拖出來。 – matt

相關問題