Я добавил закругленные углы к своему подклассу UIView
, добавив маску слоя.Ниже приведен код Montouch, но он должен быть достаточно простым, чтобы получить значение также в ObjC:
// Add a layer that holds the rounded corners.
UIBezierPath oMaskPath = UIBezierPath.FromRoundedRect (this.Bounds, this.eRoundedCorners, new SizeF (this.fCornerRadius, this.fCornerRadius));
private void UpdateMask()
{
if(this.Layer.Mask == null)
{
CAShapeLayer oMaskLayer = new CAShapeLayer ();
oMaskLayer.Frame = this.Bounds;
// Set the newly created shape layer as the mask for the image view's layer
this.Layer.Mask = oMaskLayer;
}
((CAShapeLayer)this.Layer.Mask).Path = oMaskPath.CGPath;
}
Я перегружен свойством Frame
.При настройке кадра настраивается маска, чтобы сохранить закругленные углы в форме.
Однако, если я анимирую изменение размера кадра, вместо маски сразу устанавливается целевое значение анимации.Есть ли способ заставить мой вид определять, что является частью анимации, и корректно анимировать маску?