首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone图在MonoTouch中的简单应用

iPhone图在MonoTouch中的简单应用
EN

Stack Overflow用户
提问于 2011-06-03 16:46:43
回答 1查看 478关注 0票数 2

我有一个规范,可以将非常简单的图表功能构建到MonoTouch应用程序中。到目前为止,我所做的一切都是以桌子为基础的,所以这是一个新的领域。

在应用程序商店中可以找到许多图表绘制的例子,例如MindMeister和SimpleMind的思维映射应用程序。

我需要用户能够点击一个视图“放下”一个新的形状,标签它,并可选择连接到一个现有的形状。

实现这种交互功能的好方法是什么?我的第一个目标是放下自定义映像创建的UIImageView,然后确保它能够响应触摸事件来移动它。但是,当您想要添加文本覆盖时,事情会变得更加复杂,因为您必须管理两个视图(图像和文本)。

我能遵循什么方法?

PS:如果这样做不合适的话,随便打吧!

Update:使用简单的标签覆盖可以实现基本关系图元素:

代码语言:javascript
复制
UILabel lbl = new UILabel(new RectangleF(...));
lbl.Text = "Whatever";
lbl.Layer.BorderWidth = 3f;
lbl.Layer.BorderColor ( new CGColor (1f, 0f, 0f) );
this.Add (lbl);

可以通过扩展gui元素类并重写TouchesBeganTouchesMovedTouchesEnd事件来实现某些交互性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-04 08:27:06

你想做的事没那么难。我还没有准备好一个示例,但是我将给出一些步骤,这些步骤可能会帮助您开始工作。

  1. 创建自定义视图,继承UIView。这将保存您的形状和文本。
  2. 在其中添加两个子视图。保存形状的UIImageView和文本的UILabel。
  3. 覆盖自定义视图的绘制方法。在该视图中,您可以将视图的内容从该上下文复制到图像context.
  4. Assign到另一层。
  5. 移动该层,响应用户对自定义视图的superview.

的触摸。

简单的例子:

代码语言:javascript
复制
public CALayer ContentsLayer { get; set; }
public override void Draw (RectangleF rect)
{
    base.Draw(rect);

    // Create an image context
    UIGraphics.BeginImageContext(this.Bounds.Size);

    // Render the contents of the view to the context
    this.Layer.RenderInContext(UIGraphics.GetCurrentContext());

    // Assign the contents to the layer
    this.ContentsLayer = new CALayer();
    this.ContentsLayer.Contents = UIGraphics.GetImageFromCurrentImageContext().CGImage;

    // End the context
    UIGraphics.EndImageContext();
}

此示例非常简单,不应按原样使用。例如,您应该为何时接收自定义视图的内容提供逻辑。如果您将其保持为这样,则每次调用绘图方法时,它都会创建一个新的上下文。你只需要做一次。

在将内容复制到一个层后,您可以通过superview将其添加到superview层并修改其框架,从而在该层中任意移动。您不必为superview创建另一个自定义视图,您只需创建一个自定义UIGestureRecognizer,重写它自己的Touches*方法并将其添加到superview。

这样,您就有一个对象可以移动(层),它同时保存您的形状和文本。

我希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6230124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档