Переменные внутри '
не заменяются в bash. Чтобы получить подстановку строк (или интерполяцию, если вы знакомы с perl), вам нужно будет изменить ее, чтобы использовать двойные кавычки "
вместо одиночных кавычек:
$ # enclose entire expression in double quotes
$ sed "s/draw($prev_number;n_)/draw($number;n_)/g" file.txt > tmp
$ # or, concatenate strings with only variables inside double quotes
$ # this would restrict expansion to relevant portion
$ # and prevent accidental expansion for !, backticks, etc
$ sed 's/draw('"$prev_number"';n_)/draw('"$number"';n_)/g' file.txt > tmp
$ # variable cannot contain arbitrary characters
$ # see link in further reading section for details
$ a='foo
bar'
$ echo 'baz' | sed 's/baz/'"$a"'/g'
sed: -e expression #1, char 9: unterminated `s' command
Дальнейшее чтение:
Я предполагаю, что вы хотите добавить несколько кнопок по горизонтали (например, с помощью обычного элемента управления рейтингом «звездочки»).
A UIStackView
, как можно догадаться из его метода .addArrangedSubview()
, организует свои подпредставления, основываясь на его .axis
, .alignment
, [ 114] и .spacing
свойства, а также его frame
.
Итак, прочитайте немного о UIStackView
и о том, как его можно использовать. Скорее всего, вы в настоящее время ограничиваете свой пользовательский вид:
Так добавление вашей кнопки в качестве arrangedSubView
приводит к ее растяжению до ширины стека, потому что это значение по умолчанию.
Добавление его в качестве subview
просто накладывает кнопку на представление стека, вместо того, чтобы позволить стековому представлению упорядочить его, и ваш вид стека, скорее всего, тогда будет иметь высоту ноль - поэтому кнопка не может быть нажата. 1121]
Попробуйте установить только верхние и ведущие ограничения , когда добавляете свой пользовательский вид стека. Это должно дать вам кнопку 44 x 44
, которую можно нажать.
Когда вы добавляете больше кнопок с помощью .addArrangedSubview()
, эти кнопки будут располагаться горизонтально, что, вероятно, вам и нужно.