小编Mee*_*shi的帖子

iPhone:以纵向模式捕获的图像在UIImageview中以横向模式加载

我正在开发一个应用程序,我在纵向模式下捕获图像,然后移动到另一个带有图像数据的类,并在UIScrollView上的UIImageView中显示该图像.

现在,如果我正在使用图像表单库,它工作正常,但如果我必须捕获图像,它将以横向模式显示数据.下面是我的两个类的代码.:

第1类:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSData *imgData = UIImagePNGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"]);

    [picker dismissModalViewControllerAnimated:YES];
        image = [[UIImage alloc] initWithData:imgData];

    CGImageRef imgRefCrop = image.CGImage;
            UIImage *photo = [UIImage imageWithCGImage:imgRefCrop];

    PhotoCropperPage *photoCropper = [[PhotoCropperPage alloc] 
                                           initWithPhoto:photo
                                                 delegate:self                                                  
                uiMode:PCPUIModePresentedAsModalViewController
                                          showsInfoButton:YES];

    [photoCropper setMinZoomScale:0.3f];
    [photoCropper setMaxZoomScale:4.0f];
    [self.navigationController pushViewController:photoCropper animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

第2类:

- (void) loadPhoto
{
    if (self.photo == nil) {
        return;
    }

    CGFloat w = self.photo.size.width;
    CGFloat h = self.photo.size.height;

    CGRect imageViewFrame = CGRectMake(0.0f, 0.0f, roundf(w / 2.0f), roundf(h / 2.0f));
    self.scrollView.contentSize = …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiimageview uiimagepickercontroller

4
推荐指数
1
解决办法
6127
查看次数

videoMaximumDuration不限制持续时间

我希望用户从他的图书馆中选择一个视频并将其限制为45秒(如WhatsApp - 您可以编辑视频,将发送的视频不超过45秒.

但是,如果我使用下面的代码,无论持续时间如何,它都会选择一个视频,我无法修剪它(用视频测试,长度为1分钟)

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
        imagePickerController.delegate = self; 
        imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        imagePickerController.videoQuality = UIImagePickerControllerQualityTypeLow;
        imagePickerController.videoMaximumDuration = 45.0f; //?
        imagePickerController.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary];

        [[self parentViewController] presentModalViewController:imagePickerController animated:YES];
        [imagePickerController release];
Run Code Online (Sandbox Code Playgroud)

在WhatsApp中,我得到以下屏幕,我想重现: 在此输入图像描述

video objective-c uiimagepickercontroller ios

4
推荐指数
1
解决办法
4391
查看次数

如何将viewcontrollers添加到我的导航控制器?

我正在开发中,我使用的是一个应用程序UINavigationControllerAppDelegate.在发布时,我用一个初始化它UIViewController.

 self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self.navigationController setNavigationBarHidden:YES];

[window addSubview:self.navigationController.view]; like this.
Run Code Online (Sandbox Code Playgroud)

不过,我想其他补充UIViewControllersUINavigatioNController,但我知道,这不是很好的做法,重新初始化UINavigationController每次我想用其他的UIViewControllers.请你能告诉我正常的做法吗?

objective-c uiviewcontroller uinavigationcontroller ios

4
推荐指数
1
解决办法
5759
查看次数

clearColor使背景颜色变黑

我希望在我的UIViewController中有一个透明的背景,因为我使用了clearColor

colorPickerVc.view.backgroundColor = UIColor.clearColor()
presentViewController(colorPickerVc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

问题是当colorPickerVc完成加载时,背景颜色变黑了我想要一个解决方案,如果可能的话,在ios 7上工作,谢谢你的帮助


@ good4pc的解决方案:

colorPickerVc.view.backgroundColor = UIColor.clearColor()
if #available(iOS 8.0, *) 
{
    colorPickerVc.modalPresentationStyle = UIModal PresentationStyle.OverCurrentContext
} 
else 
{
     colorPickerVc.modalPresentationStyle = UIModalPresentationStyle.CurrentContext
}

presentViewController(colorPickerVc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

为我工作,谢谢你们的帮助

xcode objective-c ios swift

4
推荐指数
1
解决办法
3017
查看次数

UIImagePickerController不尊重iPad上的视频最长持续时间

我正在尝试构建一个应用程序,让用户从iPad上的库中选择和上传视频.我需要最大视频长度为30秒.

我使用以下代码:

UIImagePickerController *mediaPicker = [[UIImagePickerController alloc] init];

mediaPicker.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeMovie,(NSString *)kUTTypeImage,nil];
mediaPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

mediaPicker.videoQuality = UIImagePickerControllerQualityTypeIFrame960x540;
mediaPicker.videoMaximumDuration = 30.0f;
mediaPicker.delegate = self;


if (self.imagePickerPopOverController.popoverVisible) {
    [self.imagePickerPopOverController dismissPopoverAnimated:YES];
}

self.imagePickerPopOverController = [[UIPopoverController alloc] initWithContentViewController:mediaPicker];
[self.imagePickerPopOverController presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItem
                                          permittedArrowDirections:UIPopoverArrowDirectionUp
                                                          animated:NO];
Run Code Online (Sandbox Code Playgroud)

选择视频后,我希望UIImagePickerController显示一个修剪器,将视频长度调整为30秒(如果更长),但事实并非如此.

objective-c uiimagepickercontroller ipad ios

3
推荐指数
1
解决办法
2689
查看次数

Swift 将 UITextField 限制为一位小数

如何使用 Swift 将 UITextField 限制为一位小数?文本字段用于输入价格,因此我不能允许超过一位小数。如果我使用 Objective-C,我会使用以下代码:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];

    NSArray *sep = [newString componentsSeparatedByString:@"."];
    if([sep count] >= 2)
    {
        NSString *sepStr=[NSString stringWithFormat:@"%@",[sep objectAtIndex:1]];
        return !([sepStr length]>1);
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

但由于 Swift 使用范围的方式不同,我无法将此代码转换为 Swift。第一行给了我一个错误说NSRange is not convertible to Range<String.Index>

编辑:在看到答案之前我最终这样做了:

func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool {
    let tempRange = textField.text.rangeOfString(".", options: NSStringCompareOptions.LiteralSearch, range: nil, locale: nil)
    if tempRange?.isEmpty == false && string == …
Run Code Online (Sandbox Code Playgroud)

objective-c uitextfield ios swift

3
推荐指数
1
解决办法
6037
查看次数

基于字符串属性按字母顺序对对象数组进行排序

我有一个UITableView,它填充了一个'Product'类型的对象数组,每个对象都有一个string类型的'name'属性.单击单元格时,将显示模态视图,其中包含有关该产品的更多信息.

我想要做的是根据名称属性的第一个字母将产品分成几个部分.(喜欢iPhone联系人).

我一直在努力解决这个问题,我似乎无法在网上找到解决我特定问题的任何内容.

有人能指出我正确的方向吗?

sorting iphone objective-c uitableview ios

2
推荐指数
1
解决办法
7417
查看次数

检查UITableViewCell是否完全可见

如何检查UITableViewCell是否在屏幕上完全可见(不是通过选项卡或导航栏切断)?

我可以使用以下代码获取可见单元格:

NSArray *indexes = [_tableView indexPathsForVisibleRows];
Run Code Online (Sandbox Code Playgroud)

但我想排除屏幕中不完全可见的单元格.

objective-c viewport uitableview tableviewcell ios

2
推荐指数
1
解决办法
3027
查看次数

UIView 框架未在 viewDidAppear 中更新

我正在使用Storyboardautolayout. 在我的中,ViewController我有一个基本结构:一个UIScrollView和一个包含不同标签的 contentView ( UIView)。然后我在viewDidAppearmy 类的方法中添加了不同的元素contentView,然后为了重新计算它的帧大小,我这样做:

- (void)fixContentViewHeight 
{
    _contentView.frame = CGRectMake(_contentView.frame.origin.x, _contentView.frame.origin.y, _contentView.frame.size.width, operators.frame.origin.y + operators.frame.size.height);
     //constraint for contentView height
    _contentViewHeight.constant = operators.frame.origin.y + operators.frame.size.height;
}

- (void)fixScrollViewHeight 
{
    _scrollView.frame = _contentView.frame;
    _scrollView.contentSize = _contentView.frame.size;
}
Run Code Online (Sandbox Code Playgroud)

其中operators是 最后放置的元素contentView,它始终位于框架的底部。我在 中调用这两个方法,viewDidAppear它们使视图可滚动,问题是 的框架contentView没有更新,因此最后一个元素始终不可单击(因为它们放置在视图框架之外)。

我究竟做错了什么?为什么scrollView变得可滚动但contentView保持旧框架?

objective-c uiview ios

1
推荐指数
1
解决办法
3134
查看次数

检查表达式是否有效

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析格式字符串“12+6+ == 1””

我想验证表达式是否有效。我正在尝试使用以下代码:

let equationString = "12+6+"

do {
    let expr =  try NSExpression(format: equationString)
    if let result = expr.expressionValue(with: nil, context: nil) as? NSNumber {
        let x = result.doubleValue
        print(x)
    } else {
        print("failed")
    }
}
catch {
    print("failed")
}
Run Code Online (Sandbox Code Playgroud)

我已经使用了 try-catch 语句,但仍然在这里崩溃。有什么解决办法吗?

任何帮助,将不胜感激。

math try-catch nsexpression swift4

1
推荐指数
1
解决办法
1320
查看次数