小编Ada*_*don的帖子

NavigationController中的UIPageViewController

我已经阅读了我发现的关于UIPageViewController的每个教程,但是它们只展示了基础知识,我想创建类似新的twitter应用程序的东西:

在此输入图像描述

UIPageViewController嵌入到导航控制器中,导航栏的标题基于当前页面,并且那些页面点也在那里,用户可以点击当前页面上的项目(项目视图/集合视图中的项目)来查看详细信息.

我能够得到类似的东西,每个页面都有收集视图,并显示一些项目的细节反映在导航栏中,有正确的标题和"<"按钮,但我无法根据当前更改标题显示的页面

拜托,您能用几步/控制器的基本结构来描述我如何做到这一点吗?

uinavigationcontroller uipageviewcontroller ios7

18
推荐指数
2
解决办法
2万
查看次数

小部件预览使用了错误大小的系列

我有一个如下所示的小部件视图:

struct WidgetEntryView: View {
    var entry: Provider.Entry

    @Environment(\.widgetFamily) var family
    
    var body: some View {
        switch family {
        case .systemSmall:
            ZStack {
                VStack(spacing: 12) {
                    // ...
                }
                .padding(10)
                .frame(maxWidth: .infinity, maxHeight: .infinity)
            }
            .background(Color.red.edgesIgnoringSafeArea(.all))
        case .systemMedium:
            ZStack {
                VStack(spacing: 12) {
                    // ...
                }
                .padding(10)
                .frame(maxWidth: .infinity, maxHeight: .infinity)
            }
            .background(Color.blue.edgesIgnoringSafeArea(.all))
        default:
            ZStack {
                VStack(spacing: 12) {
                    // ...
                    
                }
                .padding(10)
                .frame(maxWidth: .infinity, maxHeight: .infinity)
            }
            .background(Color.black.edgesIgnoringSafeArea(.all))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该小部件支持所有 3 个主要尺寸系列:

struct MyWidget: Widget {
    let …
Run Code Online (Sandbox Code Playgroud)

ios widgetkit swiftui

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

如何裁剪UIImagePickerController拍摄的照片,因为它正在显示

当我使用UIImagePickerController拍照时,屏幕上可以看到更多的图片...我怎样拍照/裁剪它,以便它与我在屏幕上看到的完全相同?

编辑:我将添加代码,以指定我的问题:

- (void)showImagePickerForSourceType:(UIImagePickerControllerSourceType)sourceType
{

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
imagePickerController.sourceType = sourceType;
imagePickerController.delegate = self;
imagePickerController.showsCameraControls = NO;
imagePickerController.allowsEditing = YES;

if (sourceType == UIImagePickerControllerSourceTypeCamera)
{
    [[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self options:nil];
    self.overlayView.frame = imagePickerController.cameraOverlayView.frame;
    imagePickerController.cameraOverlayView = self.overlayView;
    //self.overlayView = nil;
    self.overlayImage.image = self.imageView.image;
    self.overlayImage.alpha = 0.5;

    UISlider *slider=[[UISlider alloc]initWithFrame:CGRectMake(60, 80, 200, 30)];
    [slider setMaximumValue:1.0];
    [slider setMinimumValue:0.0];
    [slider setValue:0.5];
    [slider addTarget:self action:@selector(sliderChanged:)  forControlEvents:UIControlEventValueChanged];

    if (self.working == TRUE)
    {
        [imagePickerController.cameraOverlayView addSubview:self.overlayImage];
        [imagePickerController.cameraOverlayView addSubview:slider];
    }
}

self.imagePickerController = …
Run Code Online (Sandbox Code Playgroud)

crop objective-c uiimagepickercontroller ios

8
推荐指数
3
解决办法
2万
查看次数

尝试更改帧大小的UIView动画在iOS 8中不起作用,但在iOS 7中不起作用

我想调整UIView的大小,我的代码在iOS 7.1中运行得很完美,但是当我在iOS 8中运行时,它无法正常工作(我将在下面解释).

我的故事板中有我的UIView值(0,67,511,320),我想在iPad上调整到全屏,所以我添加了以下代码:

        [UIView animateWithDuration:0.5 animations:^{

            CGRect frame = containerView.frame;
            frame.origin.x = 0;
            frame.origin.y = 67;
            frame.size.height = 643;
            frame.size.width = 1024;
            containerView.frame = frame;
            ...

        }completion:^(BOOL finished) {
            ...
        }];
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

 _________________________________
|           |                     |
|           |                     |
|     A     |                     |
|___________|                     |
|                                 |
|                BACKGROUND       |
|                                 |
|                                 |
|_________________________________|

                |
                V
 _________________________________
|                                 |
|                                 |
|                                 |
|               A                 |
|                                 |
|                                 |
|                                 |
|                                 |
|_________________________________|
Run Code Online (Sandbox Code Playgroud)

但它开始动画像(0,67,0,0)到(0,67,511,320)

关于发生了什么的任何线索?还是另类?

objective-c uiview uianimation ios ios8

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

通用游戏中的SkSpriteNode位置

我正在使用Swift以纵向模式为所有iOS设备创建通用游戏.在GameViewController中,我正在创建这样的场景:

let scene = GameScene(size:CGSize(width: 1536, height: 2048))
scene.scaleMode = .AspectFill
Run Code Online (Sandbox Code Playgroud)

背景图像的分辨率为1536x2048,因此在iPad上以scaleMode显示其全尺寸,在iPhone 6上显示1152x2048,侧面修剪.在所有设备上都可以正常工作,只需要一个背景图像.问题是,如果我调用size.width或self.frame.size.width,它总是返回1536,即使实际可见区域是例如1152.

如何设置SkSpriteNode相对于可见区域的位置,以便它例如从每个设备的角落50x50?

ios sprite-kit swift

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

MFMailComposeViewController navigationBar自定义背景颜色

我正在使用MFMailComposeViewController,我想改变背景颜色,使其与我在应用程序中的颜色相匹配.我尝试了几件事,但没有任何效果(至少在iOS 9上没有).

let mailVC = MFMailComposeViewController()
mailVC.mailComposeDelegate = self
...

mailVC.navigationBar.titleTextAttributes =
[NSForegroundColorAttributeName: UIColor.whiteColor()] // this works
mailVC.navigationBar.tintColor = UIColor.whiteColor() // this works
mailVC.navigationBar.barTintColor = UIColor.blueColor()  // this doesn't work
mailVC.navigationBar.backgroundColor = UIColor.blueColor()  // this doesn't work
Run Code Online (Sandbox Code Playgroud)

背景颜色保持默认灰色.

uinavigationbar swift ios9

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

导航栏中的灰色背景,在推送期间将 searchController 添加到导航项

我在导航控制器中有一个表视图,以便我可以将详细视图控制器推送到堆栈上。它工作正常,直到我向导航项添加搜索控制器,如下所示:

searchController = UISearchController(searchResultsController: nil)
searchController.obscuresBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchBar.delegate = self
searchController.searchBar.tintColor = Colors.mlLabel
navigationItem.searchController = searchController
definesPresentationContext = true
Run Code Online (Sandbox Code Playgroud)

它导致临时灰色背景,见下文:

在此处输入图片说明

在调试视图层次结构时,看起来UIViewControllerWrapperView's _UIParallaxDimmingView(在下面选择)是导致这种情况的原因,因为导航栏和状态栏都是透明的。

在此处输入图片说明

我怎样才能解决这个问题?

注意:animated属性设置pushViewController()false有效,但我想保留动画。

更新:这似乎只在 iOS 13 上有问题。甚至可能来自最近的某个版本,因为我之前没有这个问题。

更新 2:我现在在我的应用程序中的多个地方都注意到了同样的问题,而且它不仅仅是与SearchController. 基本上_UIParallaxDimmingView它的鼻子伸出来。

uinavigationbar uinavigationcontroller pushviewcontroller ios uisearchcontroller

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

使用SDWebImage下载的图像中的UIImageView幻灯片

我正在为时间推移照片制作应用程序,我正在使用SDWebImage从服务器下载+缓存照片,我想从一系列照片中进行幻灯片放映.我已经setAnimationImagesWithURLs为UIImageView 尝试了SDWebImage的方法,但是我需要有更多的控制权(我不想在viewDidLoad之后立即启动动画,...).

我想在显示视图控制器后,它开始从NSURL数组下载照片,只显示第一张图片,有播放/停止/下一个控件,用户可以点击它们开始动画...

在UIImageView动画的每个教程中,他们将图像加载到数组中setAnimationImages:array,但是在阅读完这个答案之后,它看起来并不是一个好主意.

那么这样做的正确方法是什么?

animation objective-c uiimageview ios sdwebimage

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

结构体数组的下标

鉴于我有一系列这样的结构:

let array = [Struct(key: "a", value: 1), Struct(key: "b", value:2)]

如何用键为数组添加下标?

array["b"]会很好,但正如预期的那样,它不起作用。

编辑:我不使用字典的原因是我需要保留项目的顺序。

arrays struct swift

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