CALayer-2
5835 단어 CoreAnimation애니메이션CALayer
기능 소개
//
scrollingViewLayer.scrollMode = kCAScrollBoth
다음 경험 규칙은 CAScrollLayer 사용 여부를 결정하는 데 사용됩니다.
CATextLayer
기능 소개
func setUpLayer(){
// 1
let textLayer = CATextLayer()
textLayer.frame = someView.bounds
// 2
var string = ""
for _ in 1...20 {
string += "Lorem ipsum dolor sit amet"
}
textLayer.string = string
// ,
let fontName: CFStringRef = "Noteworthy-Light"
textLayer.font = CTFontCreateWithName(fontName, fontSize, nil)
// 4
textLayer.foregroundColor = UIColor.darkGrayColor().CGColor
//
textLayer.wrapped = true
//
textLayer.alignmentMode = kCAAlignmentLeft
// contentsScale
textLayer.contentsScale = UIScreen.mainScreen().scale
//
textLayer.truncation
someView.layer.addSublayer(textLayer)
}
: 1。 , contentsScale , 。 contentsScale , 1 Retina 。
CAGradientLayer
기능 소개
:startPoint endPoint , , 。 x 1 ,y 1 。
속성 소개
type
속성을 포함하는데 이 속성은 kCAGradientLayerAxial
하나만 선택할 수 있지만 그룹의 각 색에 따라 선형 과도 점차적인 변화가 발생한다.startPoint
에서 endPoint
까지의 벡터 A 방향으로 발생하고 B와 A를 수직으로 설정하면 각 B의 평행선의 모든 점 색깔이 같다는 것이다.locations
속성은 하나의 배열(요소 값 범위 0에서 1)을 사용하여 그래디언트 레이어 참조colors
순서를 지정하여 다음 변환점 색상의 위치를 가져옵니다.colors
의 수량과 일치해야 한다. 그렇지 않으면 오류가 발생할 수 있다.코드 예
func setUpLayer(){
let gradientLayer = CAGradientLayer()
gradientLayer.frame = someView.bounds
//
gradientLayer.colors = [cgColorForRed(209.0, green: 0.0, blue: 0.0),
cgColorForRed(255.0, green: 102.0, blue: 34.0),
cgColorForRed(255.0, green: 218.0, blue: 33.0),
cgColorForRed(51.0, green: 221.0, blue: 0.0),
cgColorForRed(17.0, green: 51.0, blue: 204.0),
cgColorForRed(34.0, green: 0.0, blue: 102.0),
cgColorForRed(51.0, green: 0.0, blue: 68.0)]
//
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
//
gradientLayer.endPoint = CGPoint(x: 0, y: 1)
someView.layer.addSublayer(gradientLayer)
}
func cgColorForRed(red: CGFloat, green: CGFloat, blue: CGFloat) -> AnyObject {
return UIColor(red: red/255.0, green: green/255.0, blue: blue/255.0, alpha: 1.0).CGColor as AnyObject
}
CAReplicatorLayer
기능 소개
코드 예
func setUpLayer(){
// 1
let replicatorLayer = CAReplicatorLayer()
replicatorLayer.frame = someView.bounds
// 2
// instanceCount
replicatorLayer.instanceCount = 30
//
replicatorLayer.instanceDelay = CFTimeInterval(1 / 30.0)
// 2D
replicatorLayer.preservesDepth = false
//
replicatorLayer.instanceColor = UIColor.whiteColor().CGColor
// 3、 RGB ( 0, )
, RGB 1.0, 0,
replicatorLayer.instanceRedOffset = 0.0
replicatorLayer.instanceGreenOffset = -0.5
replicatorLayer.instanceBlueOffset = -0.5
//alpha ,
replicatorLayer.instanceAlphaOffset = 0.0
// 4、 ,
let angle = Float(M_PI * 2.0) / 30
replicatorLayer.instanceTransform = CATransform3DMakeRotation(CGFloat(angle), 0.0, 0.0, 1.0)
someView.layer.addSublayer(replicatorLayer)
// 5、 , , someView , , 。
let instanceLayer = CALayer()
let layerWidth: CGFloat = 10.0
let midX = CGRectGetMidX(someView.bounds) - layerWidth / 2.0
instanceLayer.frame = CGRect(x: midX, y: 0.0, width: layerWidth, height: layerWidth * 3.0)
instanceLayer.backgroundColor = UIColor.whiteColor().CGColor
replicatorLayer.addSublayer(instanceLayer)
// 6、 1( ) 0( ) 。
let fadeAnimation = CABasicAnimation(keyPath: "opacity")
fadeAnimation.fromValue = 1.0
fadeAnimation.toValue = 0.0
fadeAnimation.duration = 1
fadeAnimation.repeatCount = Float(Int.max)
// 7、 0, alpha
instanceLayer.opacity = 0.0
instanceLayer.addAnimation(fadeAnimation, forKey: "FadeAnimation")
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
CALayer-2CAScrollLayer CAScrollLayer는 일부 스크롤 가능한 도면층을 표시하는데 이 도면층은 매우 기초적이어서 사용자의 터치 작업에 직접 응답할 수 없고 스크롤 가능한 도면층의 경계를 직접 검사할 수 없기...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.