Мой IOS приложение была эти две кнопки в течение нескольких месяцев:Как удалить ненужную кнопку Shadows
Они добавляются в IB, но в viewDidLoad я закруглить углы и обновить цвет фона.
Сегодня я добавил функцию textField, которая находится на одном и том же представлении. Теперь при загрузке VC/представляет вид появляется и после секундной задержки четверти, тень появляется позади кнопок:
Я не изменил ни одной вещи в атрибуте инспекторе. Я также не изменил код, закругляющий кнопки. С тех пор, как проблема началась, я добавил явный теневой код и убедился, что инспектор настроен на прозрачные тени.
func roundBut (Type: UIView) {
Type.layer.cornerRadius = 6
Type.layer.borderWidth = 0.0
Type.layer.masksToBounds = true
Type.layer.borderColor = UIColor.whiteColor().CGColor
Type.layer.shadowOpacity = 0.0
Type.layer.shadowColor = nil
Type.layer.shadowRadius = 0.0
}
Последнее, что странно, что если я нажму на текстовое поле, тени исчезнут.
Больше кода, в соответствии с просьбой:
Здесь довольно много каждый бит кода, связанного с этим в том числе viewDidLoad, угол закругления функции и код для текстового поля и текст обзора:
override func viewDidLoad() {
super.viewDidLoad()
//If user is editing a cell, check...
if passingEdit == true {
//If passed an 'Add New' cell: It clears that text
if namePassed == nil && descPassed == "Add new" {
txtDesc.text = ""
addSave.setTitle("Add", forState: UIControlState.Normal)
action.hidden = true
actionsBox.hidden = true
passingEdit = false
}
else {
//Otherwise: Fill both fields with cell's content
txtTask.text = namePassed
txtDesc.text = descPassed
action.hidden = true //Becasue action box will be visible
addSave.setTitle("Update", forState: UIControlState.Normal)
}
}
else {
txtTask.becomeFirstResponder()
addSave.setTitle("Add", forState: UIControlState.Normal)
action.hidden = true
actionsBox.hidden = true
}
//If user hasn't added details: Show Placeholder
if txtDesc.text.isEmpty {
txtDesc.text = "Tap here to add details."
txtDesc.textColor = UIColor.lightGrayColor()
}
//Sets editor header text
switch (currentListEntity) {
case "TodayTask":
hdr_Txt.setTitle("Today", forState: UIControlState.Normal)
txtTask.attributedPlaceholder = NSAttributedString(string:"I need to...", attributes:[NSForegroundColorAttributeName: UIColor.lightGrayColor()])
move_TopBtn.setTitle("Add to 'Tomorrow'", forState: UIControlState.Normal)
move_TopBtn.backgroundColor = UIColor(red: 49/255.0, green: 82/255.0, blue: 172/255.0, alpha: 1.0)
case "TomTask":
hdr_Txt.setTitle("Tomorrow", forState: UIControlState.Normal)
txtTask.attributedPlaceholder = NSAttributedString(string:"I need to...", attributes:[NSForegroundColorAttributeName: UIColor.lightGrayColor()])
move_TopBtn.setTitle("Add to 'Today'", forState: UIControlState.Normal)
move_TopBtn.backgroundColor = UIColor(red: 0/255.0, green: 128/255.0, blue: 0/255.0, alpha: 1.0)
case "TBDTask":
hdr_Txt.setTitle("Do Later", forState: UIControlState.Normal)
txtTask.attributedPlaceholder = NSAttributedString(string:"At some point, I need to...", attributes:[NSForegroundColorAttributeName: UIColor.lightGrayColor()])
case "FinTask":
//This won't likely run, as "Fin" does not have an add button
hdr_Txt.setTitle("Done", forState: UIControlState.Normal)
default:
//Should run when user's current location is the Life Lists
hdr_Txt.setTitle("List Item", forState: UIControlState.Normal)
txtTask.attributedPlaceholder = NSAttributedString(string:"Name of List Item", attributes:[NSForegroundColorAttributeName: UIColor.lightGrayColor()])
move_TopBtn.setTitle("Add to 'Today'", forState: UIControlState.Normal)
move_TopBtn.backgroundColor = UIColor(red: 0/255.0, green: 128/255.0, blue: 0/255.0, alpha: 1.0)
move_BotBtn.setTitle("Add to 'Tomorrow'", forState: UIControlState.Normal)
move_BotBtn.backgroundColor = UIColor(red: 49/255.0, green: 82/255.0, blue: 172/255.0, alpha: 1.0)
}
//Round check/delete views
makeCircle(deleteBtn)
makeCircle(doneBtn)
//Round corners of rectangles
roundBut(move_TopBtn)
roundBut(move_BotBtn)
move_TopBtn.layer.shadowColor = UIColor.clearColor().CGColor
move_TopBtn.layer.shadowRadius = 0.0
print("editorVC viewDidLoad ran")
}//End of viewDidLoad
//*****************************
//Setup - Reference Functions
//*****************************
//Round contentView
func roundBut (Type: UIView) {
Type.layer.cornerRadius = 6
Type.layer.borderWidth = 0.0
Type.layer.masksToBounds = true
Type.layer.borderColor = UIColor.whiteColor().CGColor
Type.layer.shadowOpacity = 0.0
Type.layer.shadowColor = nil
Type.layer.shadowRadius = 0.0
}
func makeCircle (viewToRound: UIButton) {
viewToRound.layer.cornerRadius = viewToRound.frame.size.width/2
viewToRound.layer.borderWidth = 0.0
viewToRound.layer.masksToBounds = true
}
//***** ----- ***** ------ ***** ----- ***** ----- *****
//Functionality
//***** ----- ***** ------ ***** ----- ***** ----- *****
func textFieldDidBeginEditing(textField: UITextField) {
if txtTask.text != "" {
action.hidden = false
}
}
//Dismisses keyboard upon tapping the return key
func textFieldShouldReturn(textField: UITextField) -> Bool{
textField.resignFirstResponder()
return true
}
//Dismisses keyboard upon touch outside text boxes
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
action.hidden = true
}
func textViewDidBeginEditing (textView: UITextView) {
if textView.textColor == UIColor.lightGrayColor() {
textView.text = nil
textView.textColor = UIColor.whiteColor()
}
action.hidden = false
}
func textViewDidEndEditing(textView: UITextView) {
if textView.text.isEmpty {
txtDesc.text = "Tap here to add details."
textView.textColor = UIColor.lightGrayColor()
}
}
Последнее примечание: темно-серый фон представляет собой визуальный эффект. Не уверен, если это имеет значение.
У кого-нибудь есть идеи?
Вы пытались явно отключить тени на текстовом поле? Моя мысль, может быть, есть ошибка с masksToBounds, где это не влияет на тень subview. – Sidetalker
Вы должны разместить больше кода. Какую функцию вы добавили? Где этот код вызывается? – beyowulf
@beyowulf - добавлен код –