2
我得到了UITextField
,我打算在用戶觸摸TextField
並調出鍵盤時以編程方式在其右側添加UIButton
。無法更改UITextField的寬度
------------------------------
|--------------------------- |
|| textfield | |
|--------------------------- |
------------------------------
當鍵盤長大的
------------------------------
|------------------ |
|| textfield | BUTTON |
|------------------ |
------------------------------
我用Storyboard
與自動版式的界面建設,這些元素都連接好。
當我試圖改變UITextField
的寬度,它並沒有改變所有,產生的Button
被提「內部」的文本框,如下所示的截圖:
這裏是我的代碼:
// code to add the button
- (void)keyboardWasShown:(NSNotification*)aNotification
{
// dynamically add a "reply" button
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.replyViewBox addSubview:button];
[button setTitle:@"Reply" forState:UIControlStateNormal];
// change button size & position
button.frame = CGRectMake(265.0, 10.0, 46.0, 30.0);
// [button sizeToFit];
// change replyText size
CGRect frameRct = replyText.frame;
frameRct.size.width = 248.0;
replyText.frame = frameRct;
[replyViewBox addSubview:button];
}
我設置通過故事板的限制,所以是有反正讓我改變寬度編程,同時保持了自動版式?
由於您使用的是自動佈局,因此您必須更改約束,而不是幀。這裏是關於這個主題的一個體面的答案:http://stackoverflow.com/questions/15893022/setting-constraints-programatically – danh
@danh thx的鏈接。但是,在刪除了TextField的約束之後,我仍然無法更改其寬度。爲什麼? – dumbfingers
你關閉了自動佈局嗎? – danh