SpannableStringBuilder.insert () не вставляет диапазон, если диапазон этого типа уже присутствует в месте назначения

Я решил проблему, используя следующий трюк при назначении теневого пути для представления контейнера:

[UIBezierPath bezierPathWithRoundedRect:cell.bounds cornerRadius:12]

Обратите внимание, что путь к тени - это закругленный прямоугольник с тем же угловым радиусом, что и фон что ячейка содержит:

//this is the border for the UIView that is added to a cell
cell.backgroundView.layer.cornerRadius = 12;
cell.backgroundView.layer.masksToBounds = YES;
cell.backgroundView.layer.borderColor = [UIColor darkGrayColor].CGColor;
cell.backgroundView.layer.borderWidth = 1;

//this is the shadow around the cell itself (cannot have round corners with borders and shadow, need to use two views
cell.layer.shadowRadius = 2;
cell.layer.cornerRadius = 12;
cell.layer.masksToBounds = NO;
[[cell layer] setShadowColor:[[UIColor darkGrayColor] CGColor]];

[[cell layer] setShadowOffset:CGSizeMake(0.0,0.0)];
[[cell layer] setShadowOpacity:1.0];

UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:cell.bounds cornerRadius:12];
[[cell layer] setShadowPath:[path CGPath]];
0
задан DaveBound 17 January 2019 в 12:21
поделиться

1 ответ

Ответили на мой вопрос ...

Сначала я получал sbSrc из sbDest (для реализации функциональности копирования / вставки), используя

SpannableStringBuilder ssbSrc = new SpannableStringBuilder (ssbDest.subSequence (start, end));

subSequence () действительно копирует промежутки, но не клонирует их, поэтому ssbSrc заканчивается САМыми промежутками (теми же экземплярами объектов, а не просто теми же типами), что и в ssbDest ... и именно поэтому sbDest.insert ( ) не вставляет их.

0
ответ дан DaveBound 17 January 2019 в 12:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: