我只是在Swift中创建一个新类,它被调用myViewController,它是一个UIViewController.现在我试图让它成为UIPickerViewDelegate和DataSource,但我得到了一个奇怪的错误
import UIKit
class myViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
...
}
Run Code Online (Sandbox Code Playgroud)
它Type "myViewController" does not conform to protocol UIPIckerDataSource通过UIPickerViewDataSource 说.
这是Xcode-Beta 3的错误吗?
xcode uipickerviewcontroller ios uipickerviewdatasource swift
我有一个适用于iPhone和iPad的应用程序,当我尝试加载UIPickerViewController一个UIPopoverController用于iPad,我得到了异常"源类型1不可用".即使使用该设备也会出现问题.
@try {
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate = self;
imagePicker.allowsEditing = NO;
self.tempComp = component;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
[self presentModalViewController:imagePicker animated:YES];
}else {
// We are using an iPad
popoverController=[[UIPopoverController alloc] initWithContentViewController:imagePicker];
popoverController.delegate = self;
[popoverController presentPopoverFromRect:component.bounds inView:component permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
}else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Camera Non Disponibile" message:@"La camera non è disponibile" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil];
[alert show];
} …Run Code Online (Sandbox Code Playgroud) uipickerview uipickerviewcontroller ipad uipopovercontroller ios
我有一个UIDocumentPickerViewController只选择图像。这在 iOS 13 中运行良好:
let supportedTypes: [String] = ["public.image"]
let documentPickerViewController = UIDocumentPickerViewController(documentTypes: supportedTypes, in: .import)
Run Code Online (Sandbox Code Playgroud)
我正在尝试在 iOS 14 中实现相同的目标。
但是,init(documentTypes:in:)在 iOS 14.0 中已弃用。
所以我假设我必须使用这个初始化程序: init(forOpeningContentTypes:asCopy:)
该forOpeningContentTypes参数需要一个UTType.
我不确定如何使用/导入它。
像[UTType.Image]吗?
let supportedTypes: [UTType] = [UTType.Image]
self.viewController = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes, asCopy: true)
Run Code Online (Sandbox Code Playgroud)
这甚至不会编译,因为Cannot find type 'UTType' in scope.
我也试过import MobileCoreServices甚至import CoreServices,但这没有帮助。
文档初始化为新的文件选择器指向此UTTypeReference -所以我试图用,但它也不能被发现。
我如何才能UIDocumentPickerViewController在 iOS 14 中只选择图像?
更新
这有效(感谢@Warren):
import UniformTypeIdentifiers …Run Code Online (Sandbox Code Playgroud) 我有一个带UIPickerView的应用程序.我正在使用该方法返回自定义视图
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
Run Code Online (Sandbox Code Playgroud)
它在iOS 6中显得很好.在iOS 7中,没有那么多 - 下面的屏幕截图.
请注意,在没有焦点的单元格中,第二列和第三列重叠.中心行是正确的.
有什么建议?

我在为我的应用程序使用乐器时看到了这件事.当我分析我的应用程序时,占用的初始内存为563 KB,这是在UIImagePickerController弹出之前.第一个viewController上有一个按钮可以UIImagePickerController显示.
一UIImagePickerController出现,占用的内存就会达到1.6 - 1.7 MB.如果我选择任何图像或取消UIImagePickerController,占用的内存仍然是1.6 - 1.7 MB,我相信应该是563 KB(或者可能是几KB的更多).
请参阅我使用的以下代码:
- (IBAction)chooseButtonPressed:(id)sender
{
UIImagePickerController *pickerController = [[UIImagePickerController new]autorelease];
[pickerController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[pickerController setDelegate:self];
}
Run Code Online (Sandbox Code Playgroud)
为什么内存没有被释放?

只是想知道如何使用简单数组在UIActionSheet中创建UIPickerView.
好吧,我实际上发现了如何把它放到一个动作表中,但我更喜欢你的方式,因为它更适用于我的应用程序,谢谢,但我也想知道如何将选项放入UIPickerView,我只是挂断了那部分.我已经有一个颜色的数组:红色,绿色,蓝色,黄色,黑色等,但我想知道如果我已经使用了initwithframe,如何将它放入pickerview:?请任何人帮忙,我知道这是一个愚蠢的问题,但我在我的$$$$$$ Macbook上绞尽脑汁.
iphone cocoa-touch uipickerview uipickerviewcontroller uiactionsheet
我正在使用UIImagePickerController cameraOverlayView属性创建自定义相机UI .但是,我想保留一些现有的用户界面 - 特别是顶部的闪光灯和相机选择按钮.
我的想法是,我会继续showsCameraControls = YES设置cameraOverlayView我的自定义用户界面,然后[picker.view bringSubviewToFront:overlayView]用来确保底部的控件位于默认控件的顶部.
唉,这不起作用.我试过在没有运气的情况下将叠加层移动到各个地方的视图层次结构的前面.有没有UIImagePickerController可以实现这个目标的hackery?在自定义UI的同时,至少不能重用至少一些相机控件似乎是一种耻辱.
我完全被UIPickerView困住了.我一直收到错误:
GDB:收到信号:"SIGABRT".
2011-07-14 13:35:19.132 MeldStad [677:207] *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [UIView numberOfComponentsInPickerView:]:无法识别的选择器发送到实例0xaac34c0'
我已经在互联网上阅读了一些解决方案,但它们都没有为我工作..我也尝试了超过1个PickerView教程.不知道该怎么做才知道.
以下是选择器方法的来源:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return [pickerData count];
}
- (NSString *)pickerView:
(UIPickerView *)pickerView titleForRow:
(NSInteger)row forComponent:(NSInteger)component
{
return [pickerData objectAtIndex:row];
}
Run Code Online (Sandbox Code Playgroud)