Преобразование в JavaScript и объяснение вашего первого примера ( http://jsfiddle.net/5AANG/4/ ).
Это создает временный элемент и копии стили из окна выбора в диапазон. Затем он измеряет ширину диапазона, устанавливает ширину окна выбора на основе этой ширины и удаляет диапазон из документа.
В обычном старом JavaScript:
Захватить все s:
var selects = document.querySelectorAll('select');
Добавьте наш слушатель событий (определенный ниже) к каждому:
for (var i = 0; i < selects.length; i++) {
selects[i].addEventListener('change', changeWidth);
}
Определите прослушиватель событий:
function changeWidth (e) {
Определения базовых переменных:
var select = e.target;
var o = select.options[select.selectedIndex];
var s = document.createElement('span');
Задайте содержимое нашего временного промежутка (s
) для содержимого выбранной опции:
s.textContent = o.textContent;
Приятная часть! Присвоение стилей выбранного параметра.
getComputedStyle
)
var ostyles = getComputedStyle(o);
s.style.fontFamily = ostyles.fontFamily;
s.style.fontStyle = ostyles.fontStyle;
s.style.fontWeight = ostyles.fontWeight;
s.style.fontSize = ostyles.fontSize;
Добавить диапазон к документу, чтобы мы могли захватить его ширину:
document.body.appendChild(s);
Установите , основанная на ширине пролета (30 - магическое число, выведенное из вышеупомянутой скрипки).
select.style.width = (s.offsetWidth + 30) + 'px';
Quick! Удалите временный промежуток, прежде чем кто-нибудь его увидит!
document.body.removeChild(s);
}
К счастью, я смог помочь себе и хотел бы поделиться с вами своим решением:
Swift 3
// UIImage+Alpha.swift
extension UIImage {
func alpha(_ value:CGFloat) -> UIImage {
UIGraphicsBeginImageContextWithOptions(size, false, scale)
draw(at: CGPoint.zero, blendMode: .normal, alpha: value)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
}
Выше добавлено новое расширение Swift, которое я добавил в свой проект, а затем я изменил пример UIButton следующим образом, чтобы иметь альфа-прозрачное фоновое изображение с прозрачностью 50%.
let img = UIImage(named: "imageWithoutAlpha")!.alpha(0.5)
let myButton = UIButton()
myButton.setBackgroundImage(img, for: .normal)
Самый простой способ - поместить свой UIImage
в UIImageView
и установить альфа там.
let image = UIImage(named: "imageWithoutAlpha")
let imageView = UIImageView(image: image)
imageView.alpha = 0.5
myButton.setBackgroundImage(image, forState: UIControlState.Normal)
Мне удалось установить альфа, используя следующий код:
self.imageView.image = UIImageView(image: "image.png")
imageView.alpha = 0.5