我正在跳入其中。將文本繪製成橢圓形
我正在用UIBezierPath
繪製講話泡泡,泡泡很好,按我的預期工作。問題是如何將文本添加到對話框中,以便它保留在UIBezierPath
之內。我沒有繪製文本的經驗,而且我很難提出可能的解決方案。
我試過在泡泡裏面放一個textview,但是解決方案並沒有很好地工作,我想使用更多的泡泡。使用textview我只能使用矩形形狀,我想從上到下填充氣泡,並使用中間的完整寬度。
任何幫助和建議將非常appriciated。
我正在跳入其中。將文本繪製成橢圓形
我正在用UIBezierPath
繪製講話泡泡,泡泡很好,按我的預期工作。問題是如何將文本添加到對話框中,以便它保留在UIBezierPath
之內。我沒有繪製文本的經驗,而且我很難提出可能的解決方案。
我試過在泡泡裏面放一個textview,但是解決方案並沒有很好地工作,我想使用更多的泡泡。使用textview我只能使用矩形形狀,我想從上到下填充氣泡,並使用中間的完整寬度。
任何幫助和建議將非常appriciated。
好吧,我終於想通了如何繪製/渲染上bezierpath文本,它可以通過採取CGPath,並採用核心文本來完成。我做了這個方法。
-(void)drawText:(NSString *)text {
CGContextRef myContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(myContext);
CGContextTranslateCTM(myContext, 0.0f, self.frame.size.height);
CGContextScaleCTM(myContext, 1.0f, -1.0f);
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)attString); // 7-2
CTFrameRef theFrame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, [attString length]), path, NULL); // 8-2
CTFrameDraw(theFrame, myContext); // 11-2
CGContextRestoreGState(myContext);
}
我遵循本教程,女巫是優秀的。 http://invasivecode.tumblr.com/core-text
現在我只需要弄清楚如何計算bezierpath的大小來包含所有的文本,並計算出如何將bezierpath和核心文本一起移動,它們運行在不同的座標系上,並給我所有類型的問題。所以,如果有人有這方面的經驗,我都耳朵!
問候 莫滕
你引用的教程非常出色。它不僅提供技術內容,而且具有可讀性;)具有適當的語法,拼寫等。 – mobibob 2012-09-10 19:05:52
如果你知道它是一個橢圓形,有多大你繪製將文本,然後有一定的方程,可以讓你做你想做的。 (x^2)/ a^2 +(y^2)/ b^2 = 1可以很容易地被調整來測試一個點是否在橢圓內。就我個人而言,如果沒有至少數量適中的數學,我不知道這樣做的方法。你可能想要去math.stackexchange.com – Dustin 2012-07-11 12:31:11
嗨達斯汀,感謝您的信息。我會看看math.stackexchange.com,看看我是否想出任何東西。 – MortenHN 2012-07-12 05:52:44
@MortenHN我正在尋找一些關於氣泡部分的幫助。小心分享你如何運作?謝謝 – aVC 2013-06-07 16:31:12