- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试在 Swift PickerView 中使用图像。我不知道如何让图像实际出现在组件中。我知道如何使用带有 titleForRow 函数的字符串来执行此操作,但我不知道如何使用图像来执行此操作。到目前为止,这是我的代码:
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate {
@IBOutlet weak var pickerView: UIPickerView!
var imageArray: [UIImage] = [UIImage(named: "washington.jpg")!,
UIImage(named: "berlin.jpg")!, UIImage(named: "beijing.jpg")!,
UIImage(named: "tokyo.jpg")!]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// returns the number of 'columns' to display.
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{
return 1
}
// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return imageArray.count
}
}// end of app
最佳答案
您将需要为 UIPickerViewDelegate 协议(protocol)实现更多的委托(delegate)方法。特别是 rowHeight 委托(delegate)方法和 viewForRow 委托(delegate)方法。
类似于:
// MARK: UIPickerViewDataSource
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return 2
}
func pickerView(pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
return 60
}
// MARK: UIPickerViewDelegate
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView {
var myView = UIView(frame: CGRectMake(0, 0, pickerView.bounds.width - 30, 60))
var myImageView = UIImageView(frame: CGRectMake(0, 0, 50, 50))
var rowString = String()
switch row {
case 0:
rowString = “Washington”
myImageView.image = UIImage(named:"washington.jpg")
case 1:
rowString = “Beijing”
myImageView.image = UIImage(named:"beijing.jpg")
case 2:
default:
rowString = "Error: too many rows"
myImageView.image = nil
}
let myLabel = UILabel(frame: CGRectMake(60, 0, pickerView.bounds.width - 90, 60 ))
myLabel.font = UIFont(name:some font, size: 18)
myLabel.text = rowString
myView.addSubview(myLabel)
myView.addSubview(myImageView)
return myView
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
// do something with selected row
}
请注意,标签布局等仅用于演示,需要进行调整,或者最好使用自动布局等。
关于ios - 如何让图像出现在 Swift 的 UI PickerView 组件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27769246/
我在一个 View Controller 上使用多个pickerview。我在相应的选取器 View 中获得正确的数据,但选取器 View 中的行对称 View 不正确。第一个选择器 View 中的数
我在 View 中有多个文本字段,其中输入 View 设置为 pickerView,但是根据文本字段,应该显示不同数量的选择行。当您单击选取器 View 外部,然后单击下一个文本字段时,此方法工作正常
我有两个 pickerView,即 pickerView1 = car_make、pickerView2 = car_model。 如果我选择 car_make = Kia,我希望 pickerVie
我创建了一个使用数组作为数据源的 UIPickerView,我想在第三个组件上选择一个项目后隐藏第四个组件上的一些项目。我该怎么做? class ViewControllerEspessuras: U
我尝试使用此方法selectedRow(inComponent: 0),但它对我不起作用。当选择器不活动时,有什么方法可以从选择器中获取第一个/默认值吗? func pickerView(_ pick
我一直在寻找答案,但找不到任何明确的解决方案。我正在制作一个具有三个具有相同 UIpickerViews 的 UItextFields 的 View Controller 。如果已在另一个 UItex
UIPickerView 显示数据,但不会传输到 UITextField。 我检查了其他帖子来比较我的代码,仍然找不到解决方案。非常感谢您的帮助。 import UIKit class ViewCon
当我尝试对 pickerView 中的特定行执行操作时,我遇到了一个问题。 例如,我在 pickerView 中有多个项目,而在核心数据中我有计数器属性,所以我需要做的是,一旦我从 pickerVie
我在现有应用程序中有一个使用小数位的自定义键盘。我正在尝试实现英制测量。 所以我从键盘上删除了小数点,并添加了一个选择器 View ,我希望在其中包含 1/32 -> 31/32 之间的所有可能的分数
当我点击文本字段时,会出现输入区域,但只有 1 行,内容为空白。 (我期望 3 行:a、b 和 c) 我将 numberOfRowsInComponent 和 titleForRow 函数中的返回值更
我正在尝试制作一个 pickerView,用户可以在其中选择他/她的体重...在 Swift 2.2 中,我正在考虑制作这样的 Range: var weightList: [Int] = Array
我是 iOS 新手。谁能帮助我如何使用 PickerView 来显示年份和月份?如何设置每列的大小? - (NSInteger)numberOfComponentsInPickerView:(UIPi
我使用 inputView 在单击文本字段时显示 pickerView。然后我想用数字 1-100 填充 pickerview。我有一些我认为可以工作的代码,但是当我运行程序并单击文本字段时,它只会弹
我制作了一个字体选择器,可以显示轮子内的所有字体。 我现在需要添加 2 个额外的部分来更改字体大小和样式(粗体、斜体、下划线)。 样式和大小是 UIFont 类的成员吗?如果是这样,如何访问它们? 这
这是我的代码: @synthesize pickerLetter, pickerNumber, pickerSymbol; - (void)viewDidLoad { [super viewDidL
我想要做的是根据从选择器中选择的内容显示特定的文本字符串。例如,可以在选择器中选择蓝色、绿色和黄色选项。当您选择蓝色时,一些文本(例如,我喜欢海洋!)会输出到标签。 我已经一切正常,除了在选择器中选择
我试图调出一个选择器 View 而不是键盘来放入文本字段,但我的选择器 View 没有显示。 #import "SettingsViewController.h" #import "FindCla
我正在从一个 JSON 文件中解析一些数据 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"airports" ofType
我正在尝试获取其中包含数字列表的选择器 View 。 到目前为止,我可以获得包含所有数字的字符串,但是当将其放入选择器 View 时,选择器 View 始终为空。你能看看我的代码,让我知道哪里出错了吗
我使用了一个带有四个组件的 UIPickerView 来在没有键盘的情况下输入数字。我添加了一个小数点,只有一个“。”在 UILabelView 中。查看屏幕了解想法。 我的 UIPickerView
我是一名优秀的程序员,十分优秀!