У меня есть это перечисление:
enum WeatherMapDisplayType {
case temperature
case wind
}
Могу ли я объявить переменную, подобную этой?
let markerView: mode == .temperature ? WeatherMapItemTemp : WeatherMapItemWind = UIView.fromNib()
Зная, что mode
имеет тип WeatherMapDisplayType
Как мне справиться с этим сценарием элегантным способом?
РЕДАКТИРОВАТЬ:
Я хочу иметь возможность сделать что-то вроде этого:
let markerView: WeatherMapItem = UIView.fromNib()
markerView.frame = CGRect(x: 0, y: 0, width: 80, height: 30)
markerView.setupWeatherInformations(mode: self.currentDisplayMode, forecast: forecasts)
marker.iconView = markerView
Ранее у меня был только тип WeatherMapItem
.
Затем меня попросили добавить другой элемент карты погоды, поэтому у меня сейчас есть WeatherMapItemTemp
и WeatherMapItemWind
(также соответствующие моему перечислению).тип отображения).
func setupWeatherInformations(forecast: Forecast.HourlyForecast)
Это метод в моих пользовательских классах для настройки выходов.
Но у меня нет доступа к этому методу, если я инициализируюмой пользовательский вид из фрейма, потому что он имеет тип UIView.