2015-12-06 2 views
0

Мой IOS приложение была эти две кнопки в течение нескольких месяцев:Как удалить ненужную кнопку Shadows

no shadow

Они добавляются в IB, но в viewDidLoad я закруглить углы и обновить цвет фона.

Сегодня я добавил функцию textField, которая находится на одном и том же представлении. Теперь при загрузке VC/представляет вид появляется и после секундной задержки четверти, тень появляется позади кнопок:

shadow

Я не изменил ни одной вещи в атрибуте инспекторе. Я также не изменил код, закругляющий кнопки. С тех пор, как проблема началась, я добавил явный теневой код и убедился, что инспектор настроен на прозрачные тени.

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() 
    } 
} 

Последнее примечание: темно-серый фон представляет собой визуальный эффект. Не уверен, если это имеет значение.

У кого-нибудь есть идеи?

+0

Вы пытались явно отключить тени на текстовом поле? Моя мысль, может быть, есть ошибка с masksToBounds, где это не влияет на тень subview. – Sidetalker

+0

Вы должны разместить больше кода. Какую функцию вы добавили? Где этот код вызывается? – beyowulf

+0

@beyowulf - добавлен код –

ответ

0

После тщательного объявляя, что я не хочу тень во всех отношениях я мог бы:

//Rounded Rectangles 
func roundBut (Type: UIView) { 
    Type.layer.shadowOpacity = 0.0 
    Type.layer.shadowOffset = CGSizeMake(0, 0) 
    Type.layer.shadowColor = UIColor.clearColor().CGColor 
    Type.layer.shadowRadius = 0.0 
    Type.layer.shadowOpacity = 0.0 
    Type.layer.cornerRadius = 12.0 
    Type.layer.masksToBounds = false 
    Type.layer.borderWidth = 0.0 
} 

я, наконец, решил задать вопрос «если тень появляется, когда я говорю это не то, что происходит, когда Я говорю, чтобы он появился? Я изменил код на:

//Rounded Rectangles 
func roundBut (Type: UIView) { 
    Type.layer.shadowOpacity = 1.0 
    Type.layer.shadowOffset = CGSizeMake(500, 500) 
    Type.layer.shadowColor = UIColor.clearColor().CGColor 
    Type.layer.shadowRadius = 150.0 
    Type.layer.cornerRadius = 12.0 
    Type.layer.masksToBounds = false 
    Type.layer.borderWidth = 1.0 
    Type.layer.borderColor = UIColor(red: 127/255.0, green: 127/255.0, blue: 127/255.0, alpha: 0.10).CGColor 
} 

Решенный, на данный момент, по крайней мере. Я должен буду следить за ним, если это ошибка, которая исправляется.

Я не уверен, почему это решило мой вопрос. Сквозь его, граница 1.0 или выше, а не четкий цвет, был кодом, который, казалось, заставлял тень уходить. Если у вас есть какие-то мысли, поделитесь ими.

Смежные вопросы