本文整理汇总了C#中CALayer.RenderInContext方法的典型用法代码示例。如果您正苦于以下问题:C# CALayer.RenderInContext方法的具体用法?C# CALayer.RenderInContext怎么用?C# CALayer.RenderInContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CALayer
的用法示例。
在下文中一共展示了CALayer.RenderInContext方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateNavigationBarShadowImage
private UIImage CreateNavigationBarShadowImage()
{
// Create the border
var border = new CALayer();
border.Frame = new RectangleF(0, 0, 1, 1);
border.BackgroundColor = PXNConstants.BRAND_BORDER.CGColor;
// Init context
UIGraphics.BeginImageContextWithOptions(new SizeF(1f, 0.5f), true, 0f);
// Render
border.RenderInContext(UIGraphics.GetCurrentContext());
var image = UIGraphics.GetImageFromCurrentImageContext();
// End context
UIGraphics.EndImageContext();
return image;
}
示例2: Draw
public override void Draw(RectangleF rect)
{
var fontSize = BadgeView.fontSize;
var text = new NSString (Text);
var numberSize = text.StringSize (UIFont.BoldSystemFontOfSize (fontSize));
var radius = Radius;
var bounds = new RectangleF (PointF.Empty, new SizeF (numberSize.Width + 12f, 18f));
UIColor color;
if (Parent.SelectionStyle != UITableViewCellSelectionStyle.None && (Parent.Highlighted || Parent.Selected)) {
color = HighlightColor;
} else {
color = Color;
}
bounds.X = (bounds.Width - numberSize.Width) / 2f + .5f;
bounds.Y += 2f;
CALayer badge = new CALayer ();
badge.Frame = rect;
var imageSize = badge.Frame.Size;
// Render the image @x2 for retina people
if (UIScreen.MainScreen.Scale == 2) {
imageSize = new SizeF (imageSize.Width * 2, imageSize.Height * 2);
badge.Frame = new RectangleF (badge.Frame.Location, new SizeF (
badge.Frame.Width * 2, badge.Frame.Height * 2));
fontSize *= 2;
bounds.X = ((bounds.Width * 2) - (numberSize.Width * 2)) / 2f + 1;
bounds.Y += 3;
bounds.Width *= 2;
radius *= 2;
}
badge.BackgroundColor = color.CGColor;
badge.CornerRadius = radius;
UIGraphics.BeginImageContext (imageSize);
var context = UIGraphics.GetCurrentContext ();
context.SaveState ();
badge.RenderInContext (context);
context.RestoreState ();
context.SetBlendMode (CGBlendMode.Clear);
text.DrawString (bounds, UIFont.BoldSystemFontOfSize (fontSize), UILineBreakMode.Clip);
context.SetBlendMode (CGBlendMode.Normal);
var outputImage = UIGraphics.GetImageFromCurrentImageContext ();
UIGraphics.EndImageContext ();
outputImage.Draw (rect);
if (Parent.SelectionStyle == UITableViewCellSelectionStyle.None && (Parent.Highlighted || Parent.Selected) && Shadow) {
Layer.CornerRadius = radius;
Layer.ShadowOffset = new SizeF (0f, 1f);
Layer.ShadowRadius = 1f;
Layer.ShadowOpacity = .8f;
} else {
Layer.CornerRadius = radius;
Layer.ShadowOffset = SizeF.Empty;
Layer.ShadowRadius = 0f;
Layer.ShadowOpacity = 0f;
}
}
示例3: ImageFromLayer
public static UIImage ImageFromLayer(CALayer layer)
{
UIGraphics.BeginImageContext(layer.Frame.Size);
layer.RenderInContext(UIGraphics.GetCurrentContext());
UIImage outputImage = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
return outputImage;
}