我正在尝试在我的应用程序中重现iphone / iOS SMS应用程序的UI。我正在改编Three20 TTTextBarController。不幸的是,由于圆角附近的混叠,我的努力导致了一个非常丑陋的条形。
(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阴影的代码......
答案 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消息应用程序,而且还增长到多行。