Как я могу сделать мой iOS TTTextEditor закругленными углами менее псевдоним в Three20? - PullRequest
1 голос
/ 21 мая 2011

Я пытаюсь воспроизвести в моем приложении пользовательский интерфейс для приложения SMS для iphone / iOS.Я адаптирую 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]]]]]]];
}

Кто-нибудь может посоветовать, как улучшить качество закругленных углов?Кроме того, кто-нибудь разобрался, как попиксельно эмулировать панель SMS-чата 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 ]

1 голос
/ 21 мая 2011

Использовать MFMessageComposeViewController в MessageUI.framework

0 голосов
/ 14 марта 2012

Проверьте пример кода HPGrowingTextView и GrowingTextView здесь: http://www.hanspinckaers.com/multi-line-uitextview-similar-to-sms

Мало того, что оно выглядит как приложение для сообщений iOS, но и становится многоканальным.

0 голосов
/ 28 сентября 2011

Попробуйте установить вид, чтобы не рисовать непрозрачным. Вид рисуется с прозрачными пленками.

0 голосов
/ 21 мая 2011

Я бы сократил ваш стиль ... у вас есть 2 вставки подряд, тень и скос, и все в случайном порядке. Любое из них может быть причиной вашего размытия. Почему бы вам не начать с простого TTShapeStyle, а затем TTInnerShadowStyle.

...