如何在Three20中使我的iOS TTTextEditor圆角减少别名?

时间:2011-05-21 01:35:04

标签: iphone uiview three20 antialiasing

我正在尝试在我的应用程序中重现iphone / iOS SMS应用程序的UI。我正在改编Three20 TTTextBarController。不幸的是,由于圆角附近的混叠,我的努力导致了一个非常丑陋的条形。

enter image description here

(StackOverflow缩小上面的图像 - 请以全屏模式查看上面的图像。在该分辨率下,您将看到别名)。

我用来创建文本栏元素的Three20样式代码如下:

- (TTStyle*)textBarTextField {
    return
    [TTShapeStyle styleWithShape:[TTRoundedRectangleShape shapeWithRadius:13] next:
     [TTInsetStyle styleWithInset:UIEdgeInsetsMake(6, 0, 3, 6) next:
      [TTInsetStyle styleWithInset:UIEdgeInsetsMake(1, 0, 1, 0) next:
       [TTShadowStyle styleWithColor:RGBACOLOR(255,255,255,0.4) blur:0 offset:CGSizeMake(0, 1) next:
        [TTSolidFillStyle styleWithColor:RGBACOLOR(255,255,255,1.0) next:
         [TTInnerShadowStyle styleWithColor:RGBACOLOR(0,0,0,0.4) blur:3 offset:CGSizeMake(0, 2) next:
          [TTBevelBorderStyle styleWithHighlight:RGBACOLOR(0,0,0,0.25) shadow:RGBACOLOR(0,0,0,0.2)
                                           width:1 lightSource:270 next:nil]]]]]]];
}

有人可以建议如何提高圆角的质量吗?或者,有没有人想出如何以像素为单位模拟iOS短信聊天栏?

谢谢!

更新

我的原始代码来自TTDefaultStyles.m。

简化之后,我来到这种风格:

return
[TTShapeStyle styleWithShape:[TTRoundedRectangleShape shapeWithRadius:13] next:
 [TTInsetStyle styleWithInset:UIEdgeInsetsMake(6, 0, 4, 6) next:
   [TTLinearGradientBorderStyle styleWithColor1:RGBCOLOR(51,51,51)
                                         color2:RGBCOLOR(102, 102, 102) width:1 next:
    [TTSolidFillStyle styleWithColor:RGBACOLOR(255,255,255,1.0) next:
     [TTInnerShadowStyle styleWithColor:RGBACOLOR(0,0,0,0.8) blur:3 offset:CGSizeMake(0, 2) next:nil
     ]]]]];

据我所知,TTInnerShadowStyle是导致左上和右上可见锯齿的原因。我很想获得Apple用于无缝UITextField阴影的代码......

4 个答案:

答案 0 :(得分:1)

在MessageUI.framework中使用MFMessageComposeViewController

答案 1 :(得分:0)

我会删除你的风格......你连续有两个插图,一个投影和斜角边框,所有这些都是随机顺序。任何这些都可能导致你的模糊。为什么不从一个简单的TTShapeStyle开始,然后是TTInnerShadowStyle

答案 2 :(得分:0)

尝试将视图设置为不绘制不透明。视图使用透明胶片绘制。

答案 3 :(得分:0)

在此处查看HPGrowingTextView和GrowingTextView示例代码:http://www.hanspinckaers.com/multi-line-uitextview-similar-to-sms

它不仅看起来像iOS消息应用程序,而且还增长到多行。