Наложение нумерации на изображение

xcode
ios

#1

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


#2

#3

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#4

поднимаю этот вопрос снова. надо не просто нумерацию поставить, а как на скрине, с обводской и со своим фоном.


#5

Обводка круглая это cornerRadius. Например у вас есть вью, квадратный, приблизительный код(пишу по памяти):

myView.layer.cornerRadius = 25 //если вью 50х50
myView.layer.maskToBounds = true
myView.layer.borderWidth = 2 //ширина обводки
myView.layer.borderColor = UIColor.red.cgColor //цвет

Задний фон можно и через Interface Builder задать.


#6

спасибо. вроде бы все получилось))


#7

НО! когда нажимаю на ячейку, то view вместе с цифрой исчезает … в чем может быть проблема ?


#8

Значит что-то не так сделали. Может неправильно вью добавили, либо еще что-то.


#9

вот сам View вместе с image


#10

цифра не исчезает. только белый фон view. Обводка так же не исчезает.


#11

Думаю что ничего не исчезает , попробуйте указать у ячейки тип None, там где Selection


#12

1-я ячейка при нажатии, как видно, исчезает белый фон view.


#13

вроде получилось как вы и сказали. но не красиво получаеться, когда нажимаешь на ячейку, а там никаких выделений нет))))


#14

Я всегда убираю)), но это уже у кого какой вкус.


#15

в StackOverflow нашел интересную статью и там использовали следующую строку кода для ячеек

cell.numertaionView.layer.backgroundColor = UIColor.clear.cgColor

хотя я этого и не хотел, у меня получаеться, как бы у ячейки прописан этот код. А есть что нибудь в противовес этому, чтобы не появлялась прозрачность ?


#16

Вопрос решен следующим образом.

Есть изображения, на нее наложил UIView с размером 30-30, а в него вложил label, который будет выводить нумерацию ячеек. Так вот, создал отдельный TableViewCell для всех элементов ячеек, и для Outlet прописал следующее:

@IBOutlet weak var viewForNumeration: UIView! {
    didSet {
        viewForNumeration.layer.cornerRadius = viewForNumeration.frame.size.height / 2
        viewForNumeration.layer.masksToBounds = true
        viewForNumeration.layer.borderWidth = 1
        viewForNumeration.layer.borderColor = UIColor(red:0.00, green:0.53, blue:0.75, alpha:1.00).cgColor
    }
}

после этого, в функции setSelected, прописал, чтобы его фон был белым и все.

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    viewForNumeration.layer.backgroundColor = UIColor(red:0.98, green:0.98, blue:1.00, alpha:1.00).cgColor
    
}

И все. НО! Если создать segue на другой View и оставить нажатым на ячейку, то фон все равно пропадает. без понятии в чем проблема


#17

и да, белый цвет можно было написать просто так:

viewForNumeration.layer.backgroundColor = UIColor.white.cgColor