AjaxBehaviorEvent
не относится к RichFaces. Это характерно для JSF2. Поэтому вы можете просто использовать его в PrimeFaces.
public void retrievePostalCodeCity(AjaxBehaviorEvent event) {
UIComponent component = event.getComponent();
// ...
}
В качестве альтернативы или для случая, когда действительно невозможно в другом месте, вы всегда можете использовать новый JSF2 UIComponent#getCurrentComponent()
.
public void retrievePostalCodeCity() {
UIComponent component = UIComponent.getCurrentComponent(FacesContext.getCurrentInstance());
// ...
}
Кстати, та же самая конструкция должна отлично работать с собственными JSF2
. Я не вижу причин использовать
здесь. Это было бы единственным способом, если бы вы фактически использовали компонент PrimeFaces, такой как
.
Не связанный с конкретной проблемой, event="change"
уже по умолчанию. Вы можете просто опустить это.
Вы можете создать расширение UIView:
extension UIView{
func addGradientBackground(firstColor: UIColor, secondColor: UIColor){
clipsToBounds = true
let gradientLayer = CAGradientLayer()
gradientLayer.colors = [firstColor.cgColor, secondColor.cgColor]
gradientLayer.frame = self.bounds
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
gradientLayer.endPoint = CGPoint(x: 0, y: 1)
print(gradientLayer.frame)
self.layer.insertSublayer(gradientLayer, at: 0)
}
}
И внутри вашей ячейки просто:
override func awakeFromNib() {
super.awakeFromNib()
self.addGradientBackground(firstColor: .green, secondColor: .blue)
}
Сначала вам нужно создать градиент, а затем вставить подслой в свою ячейку, как показано ниже.
func gradient(frame:CGRect) -> CAGradientLayer {
let layer = CAGradientLayer()
layer.frame = frame
layer.startPoint = CGPointMake(0,0.5)
layer.endPoint = CGPointMake(1,0.5)
layer.colors = [
UIColor.red.cgColor,UIColor.blue.cgColor]
return layer
}
//Now on your tableViewcell do below
cell.layer.insertSublayer(gradient(cell.bounds), atIndex:0)
для Swift 4.0
func gradient(frame:CGRect) -> CAGradientLayer {
let layer = CAGradientLayer()
layer.frame = frame
layer.startPoint = CGPoint(x: 0, y: 0.5)
layer.endPoint = CGPoint(x: 1, y: 0.5)
layer.colors = [
UIColor.gray.cgColor,UIColor.cyan.cgColor]
return layer
}
cell.layer.insertSublayer(gradient(frame: backgroundView.bounds), at:0)
cell.layer.insertSublayer(gradient(cell.bounds), atIndex:0)
помещалась внутри подкласса функции awakeFromNib () UITableViewCell и заменяла cell
на self
. Это может привести к задержке прокрутки, если эта строка находится в функции tableView (cellForRowAt :).
– RPatel99
5 August 2017 в 04:30
self.addGradientBackground(firstColor: .green, secondColor: .blue)
– Anup Gupta 17 April 2018 в 09:27