2013-07-22 133 views
1

我正在使用Xamarin开发iPhone应用程序。如何平铺图像

我有一个1x2像素图像,我想垂直平铺以在xib中形成虚线,但我没有看到任何简单的方法来完成此操作。 Xcode没有用于平铺的内容模式,尽管Xamarin中的UIImage类具有ResizingMode属性,但它是只读的!

有没有一种理智的方式来完成这项工作?

回答

3

如何:

UIView tiledView = new UIView(); 
UIImage image = UIImage.FromFile("your_image.png"); 
tiledView.BackgroundColor = UIColor.FromPatternImage(image); 

在UITableViewCell的,因为它是由UITableView的重写backgroundColor属性是不可用的。我所做的一个解决方法是:

private UIView background; 

public override void AwakeFromnib() { 
    base.AwakeFromNib(); 
    this.background = new UIView(); 
    this.background.BackgroundColor = UIColor.Blue; 
    this.AddSubview(this.background); 
} 

public override void LayoutSubviews() { 
    base.LayoutSubviews(); 
    this.background.Frame = this.Bounds; 
} 

只需更改BackgroundColor所需的东西即可。

+0

嗯...这不适合我。对于一些额外的上下文,我的类是从UITableCell派生的,所以我不确定放置上述代码的适当位置。我试图把它放在构造函数中,但那给了我空引用异常。所以我尝试将它添加到'Create'方法中,但这似乎也不起作用。对于UITableCell,似乎没有相当于'DidAppear'或'DidLoad'。 –

+0

当视图从Storyboard实例化时,您必须使用AwakeFromNib()方法。当视图被实例化并准备使用时,该方法被调用。请注意,在UITableViewCell上,您不能在单元格上使用背景颜色。请参阅编辑后的帖子,了解该类视图的解决方案。 – rFlex