2016-08-23 8 views
2

спасибо за помощь! исправил его с помощью коллекции iboutlet и добавил свойства на viewDidLoadКак добавить недвижимость в UIButton?

Я пытаюсь добавить свойства клавиш клавиатуры, таких как layer.shadowColor или layer.shadowRadius. я получил ошибку

'Value of type '(UIButton)' ->() has no member 'layer' 

, как это исправить?

это мой код keyboardViewController.swift

импорт UIKit

класс KeyboardViewController: UIInputViewController { вар newKeyboardView: UIView!

@IBAction func keyPressed(sender: UIButton) { 

} 

@IBOutlet var nextKeyboardButton: UIButton! 

override func updateViewConstraints() { 
    super.updateViewConstraints() 

    // Add custom view sizing constraints here 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    loadInterface() 

} 

func loadInterface() { 
    // load the nib file 
    let keyboardNib = UINib(nibName: "newKeyboard", bundle: nil) 
    // instantiate the view 
    newKeyboardView = keyboardNib.instantiateWithOwner(self, options: nil)[0] as! UIView 

    // add the interface to the main view 
    view.addSubview(newKeyboardView) 

    // copy the background color 
    view.backgroundColor = newKeyboardView.backgroundColor 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated 
} 

override func textWillChange(textInput: UITextInput?) { 
    // The app is about to change the document's contents. Perform any preparation here. 
} 

override func textDidChange(textInput: UITextInput?) { 
    // The app has just changed the document's contents, the document context has been updated. 

    var textColor: UIColor 
    let proxy = self.textDocumentProxy 
    if proxy.keyboardAppearance == UIKeyboardAppearance.Dark { 
     textColor = UIColor.whiteColor() 
    } else { 
     textColor = UIColor.blackColor() 
    } 
    self.nextKeyboardButton.setTitleColor(textColor, forState: .Normal) 
} 

}

+0

вы можете показать код? – good4pc

+0

@IBAction func keyPressed (отправитель: UIButton) { } Я добавляю несколько кнопок и хочу добавлять тени к кнопкам. например, используя layer.shadowColor –

+0

Внутри keyPressed (отправитель: UIButton), писать коды для добавления теней, например, я добавил несколько кодов для добавления цвета границы. sender.layer.borderColor = UIColor.redColor(). CGColor sender.layer .borderWidth = 2.0 надеюсь, что это поможет. – good4pc

ответ

1

Я думаю, что для того, чтобы применить какой-то стиль к кнопке, вам понадобится выход на эту кнопку. Прямо сейчас, из того, что я могу понять, вы пытаетесь применить стили к кнопке от @IBAction отправителю, что не подходит для этого. Попробуйте сделать выход кнопкой на контроллере представления, а затем применить стили в методе viewDidLoad.

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

EDIT: Основываясь на код, который вы публикуете, клавиатура - это Nib, который вы создаете из loadInterface(). У меня нет четкого видения всего этого только с этим фрагментом кода, но мне кажется, что вы пытаетесь применить некоторые стили к каждой кнопке клавиатуры с клавиатуры. К сожалению, это действительно зависит от того, как реализована клавиатура, можете ли вы предоставить более подробную информацию?

В любом случае, из того, что я вижу, я думаю, что вы не пишете этот код: возможно, вы следуете учебнику или поддерживаете чужой код.Все в порядке, но я предлагаю вам ознакомиться с вступительным курсом на разработку iOS с помощью Swift, например, с Udacity, который является фантастическим IMHO (https://www.udacity.com/course/intro-to-ios-app-development-with-swift--ud585)

+0

Я запутался. вы имеете в виду клавиатурный контроллер? –

1

Похоже, вы пытаетесь «добавить свойство» не кнопки, а к закрытию, который принимает кнопку в качестве аргумента.

Сделать это следующим образом:

nextKeyboardButton.layer.shadowColor = UIColor.redColor.cgColor 
nextKeyboardButton.layer.shadowRadius = 5.0 
+0

hmm Я добавил кнопку: o .. есть ли способ добавить свойства к uibutton? –

+0

вам нужно показать код –

+0

@IBAction Func Keypressed (отправитель: UIButton) { } это все о кнопке, которую я хочу добавить кое-что для: с ... –

1

При попытке форматирования UIButton с базой QuartzCore, вам нужно импортировать его первым:

import QuartzCore 

Тогда вы сможете получить доступ тех членов.

Например (последний swift3 код):

@IBAction func keyPressed(sender: UIButton) { 
    let button = sender as UIButton! 
     button?.backgroundColor = UIColor.red 
     button?.layer.shadowColor = UIColor.black.cgColor 
     button?.layer.shadowRadius = 1.0 
     button?.layer.cornerRadius = 4.0 
} 

В случае, если вам нужно, чтобы применить стили раньше, попробуйте рассмотреть, чтобы поместить этот код в viewDidLoad или viewDidAppear методы:

self.nextKeyboardButton.backgroundColor = UIColor.red 
    self.nextKeyboardButton.layer.shadowColor = UIColor.black.cgColor 
    self.nextKeyboardButton.layer.shadowRadius = 1.0 
    self.nextKeyboardButton.layer.cornerRadius = 4.0 
+0

В любом случае я не представляю, как это будет выглядеть, но код должен работать следующим образом: – pedrouan

+0

спасибо за помощь :) –