【发布时间】:2017-03-17 06:59:38
【问题描述】:
我试图在我的UIImageView 上添加一个子层,但它不起作用。
- 我有一组 10 张图像,命名为
photo0到photo9,我显示 它带有5s的计时器。 - 插座
shanghaiImage是我的背景
我想在这个 marty 顶部添加一个渐变,例如:透明(顶部)到黑色(底部)。
感谢您的帮助:)
这是我在 Swift 3 中的代码。
这部分很好:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var shanghaiImage: UIImageView!
// beginning index
var _curentImageIndex:Int = 0
// number of images
let NUMBER_OF_IMAGES:Int = 10
// creation of the Timer
var _uiTimer:Timer?
override func viewDidLoad() {
super.viewDidLoad()
showPhoto(atIndex: _curentImageIndex)
}
// MARK TIMER ---------
func selectNewTimer(){
if let existingTimer:Timer = _uiTimer{
existingTimer.invalidate()
}
_uiTimer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(ViewController.showNextImage), userInfo: nil, repeats: true)
}
这里有问题。我不知道为什么它不起作用。
// MARK PHOTO ---------
func showPhoto(atIndex index:Int){
let photoName:String = "photo\(index)"
shanghaiImage.image = UIImage(named: photoName)
let gradient = CAGradientLayer()
gradient.frame = shanghaiImage.bounds
let startColor = UIColor(colorLiteralRed: 0, green: 0, blue: 0, alpha: 1)
let endColor = UIColor.black
gradient.colors = [startColor, endColor]
shanghaiImage.layer.insertSublayer(gradient, at: 0)
_curentImageIndex = index
selectNewTimer()
}
func showNextImage() {
var nextPhotoIndex:Int = _curentImageIndex + 1
if nextPhotoIndex >= NUMBER_OF_IMAGES {
nextPhotoIndex = 0
}
showPhoto(atIndex: nextPhotoIndex)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
【问题讨论】:
-
“这里有问题” 但是你还没有说是什么问题。
-
哦,写,嗯,事实上我有每 5 秒改变一次的图像;但是我的 UIimageView 上的渐变效果不起作用,我的图像上没有阴影或其他东西:)
-
@Alexandre 你把这张图片保存在 i-Phone 的相册里了吗?
标签: ios uiimageview swift3 uicolor cagradientlayer