小编Wii*_*ard的帖子

iOS版; 以自定义标头的编程方式collectionView

我在swift中制作一个iOS应用程序,我正在尝试以编程方式创建一个collectionView.我想使用我自己的UICollectionReusableView子类作为collectionview的标题,因为我需要一些按钮和标题中的可伸缩图像.

SupView是UICollectionReusableView.

override func viewDidLoad() {
    super.viewDidLoad()


    let layout = UICollectionViewFlowLayout()
    layout.headerReferenceSize = CGSizeMake(self.view.frame.width, 200)

    someView = SupView(frame: CGRectMake(0, 0, view.frame.width, 200))

    collectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
    collectionView.delegate = self
    collectionView.dataSource = self

    collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")
    collectionView.registerClass(UICollectionReusableView.self, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "headerCell")  // UICollectionReusableView
    self.view.addSubview(collectionView)
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试插入补充视图viewForSupplementaryElementOfKind,就像这样但我在尝试创建标题时遇到错误:

func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
    var reusableView : UICollectionReusableView? = nil

    // Create header
    if (kind == UICollectionElementKindSectionHeader) {
        // Create Header
        let headerView …
Run Code Online (Sandbox Code Playgroud)

subclass ios uicollectionview swift

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

带有嵌入式tableview的Scrollview

我正在使用Xcode 6在swift中构建一个iOS应用程序.我正在尝试在滚动视图中嵌入一个带有表视图的视图控制器.当用户拖动表视图时,假设移动表,而不是它所嵌入的滚动视图.我已经做了这个插图,以清除我的视图并查看控制器层次结构: 查看Hierachy

红色区域是滚动视图内容大小区域.

绿色和蓝色区域是嵌入在滚动视图中的不同视图控制器.

黄色区域是蓝色视图控制器中的文本字段.

橙色区域是蓝色视图控制器中的表格视图.

我已经在scrollview中启用了分页,因此它可以捕捉到绿色或蓝色视图控制器.如何将表格视图弹出到视图层次结构的顶部,以便滚动滚动视图的唯一方法是在文本字段中拖动.

import UIKit

class RootViewController: UIViewController, UIScrollViewDelegate {

var scrollView: UIScrollView!

var greenViewController: GreenViewController!
var blueViewController: BlueViewController!

override func viewDidLoad() {
    super.viewDidLoad()

    scrollView = UIScrollView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height))
    scrollView.delegate = self
    scrollView.pagingEnabled = true

    self.greenViewController = self.storyboard?.instantiateViewControllerWithIdentifier("Green View Controller") as! GreenViewController
    self.blueViewController = self.storyboard?.instantiateViewControllerWithIdentifier("Blue View Controller") as! BlueViewController

    greenViewController.view.frame = CGRectMake(0, 0, view.bounds.width, view.bounds.height)
    blueViewController = CGRectMake(0, view.bounds.height, view.bounds.width, view.bounds.height)


    scrollView.addSubview(greenViewController.view)
    scrollView.addSubview(blueViewController.view)

    scrollView.contentSize = CGSizeMake(view.bounds.width, …
Run Code Online (Sandbox Code Playgroud)

view subview uiscrollview ios swift

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

恢复默认导航栏外观

我正在为iPhone制作iOS应用程序,而我正在使用导航控制器.在导航过程中的某个时刻,我正在向UISegmentedControl导航控制器的导航栏下添加一个视图控制器.我在导航栏中插入新的背景和阴影图像,使其UISegmentedControl显示为导航栏的一部分.我是这样做的:

    // nav bar color image
    let rect = CGRectMake(0, 0, view.frame.width, 0.5)          // Used in navBar, size dosn't matter
    UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)
    barBackgroundColor.setFill()
    UIRectFill(rect)
    let navBarBackground = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    // setup navbar
    navigationController!.navigationBar.setBackgroundImage(navBarBackground, forBarMetrics: .Default)
    navigationController!.navigationBar.shadowImage = UIImage()
    navigationController!.navigationBar.tintColor = UIColor.blackColor()
    navigationController!.navigationBar.translucent = false
Run Code Online (Sandbox Code Playgroud)

当我离开给定的视图控制器时,导航栏背景仍然会改变.

如何恢复导航栏的外观?

要么...

是否有另一种方法嵌入UISegmentedControl扩展的导航栏?

带有自定义背景和分段控制的导航栏图片如下: 导航栏具有自定义背景. 加上下面的段控制

导航栏时,导航栏可以自定义: 在此输入图像描述

编辑:

在更改背景图像之前的视图控制器中,我尝试保护标准图像:

override func viewDidAppear(animated: Bool) {

    if sharedVariables.standartNavBarBackgroundImage == nil {
        let herp = navigationController!.navigationBar.backgroundImageForBarMetrics(.Default)
        sharedVariables.standartNavBarBackgroundImage = herp
        let derp = navigationController!.navigationBar.shadowImage …
Run Code Online (Sandbox Code Playgroud)

uinavigationbar uinavigationcontroller ios swift

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

无法在 Xcode 中创建新模拟器

我正在尝试在旧版本的 iOS (11.0) 上测试我的应用程序。

  1. 在 Xcode 的“设置活动方案”选择器中按“添加其他模拟器”

在 Xcode 中选择模拟器

  1. 单击操作系统版本下拉列表中的“下载更多模拟器运行时...”。

在xcode中添加模拟器

  1. 下载 iOS 11.0 运行时。(也可以通过导航到 Xcode 设置 -> 组件 -> 模拟器来查看)

从 Xcode 下载 iOS 11 运行时

完成此操作后,我希望 iOS 11.0 在图像 2 的“操作系统版本”下拉列表中可见,但事实并非如此。它看起来与图像 2 完全一样。当关闭 Xcode 并重新启动我的 Mac 并返回运行时时列表中,它看起来仍然与图 3 上的完全相同。运行时已下载,但我无法将其创建为模拟器。

当运行时没有出现在“创建模拟器”对话框中时,如何在下载运行时后创建新的模拟器?

xcode ios ios-simulator

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

重新激活NSLayoutConstraint在解包可选时找到nil

我想以UITextView编程方式设置我的高度以相应地适应内容.我已将UITextView默认高度设置为遵循我设置的布局约束,但希望在用户触摸按钮时更改它.

@IBOutlet weak var descriptionHeight: NSLayoutConstraint!

我试图使用layoutIfNeeded(),但它不会改变我的文本视图的大小(因为大小由布局约束保留).

我试图暂时禁用这样的约束:

print("before: \(descriptionTextView.frame)")
descriptionHeight.active = false

descriptionTextView.layoutIfNeeded()
print("after: \(descriptionTextView.frame)")

descriptionHeight.constant = descriptionTextView.frame.height         
descriptionHeight.active = true
Run Code Online (Sandbox Code Playgroud)

但是当停用它后访问插座时,它会引发异常:

致命错误:在展开Optional值时意外发现nil

它似乎正在正确计算大小:

之前:(8.0,8.0,398.0,100.0)

之后:(8.0,8.0,398.0,954.666666666667)

为什么会这样?有没有更好的方法来计算和设置我的适当大小UITextView

uitextview ios autolayout swift

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

从XCTestCase访问项目代码 - UI测试

我正在尝试在我的项目中设置UI测试.我正在进行UI测试,试图通过我的应用程序登录提示登录.为了确保在测试启动时显示登录提示,我正在尝试运行ServerManager.logout(),这是在项目的代码库中.这将导致在启动时显示登录提示.

import XCTest

class SmokeTest: XCTestCase {

    override func setUp() {
        super.setUp()

        // Put setup code here. This method is called before the invocation of each test method in the class.

        // In UI tests it is usually best to stop immediately when a failure occurs.
        continueAfterFailure = false
        // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
        XCUIApplication().launch()

        // In UI tests it’s …
Run Code Online (Sandbox Code Playgroud)

xcode ios xctest xcode-ui-testing

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

USB音频描述符

我正在尝试使用USB音频类1实现PIC32 MCU作为音频设备.我已经实现了这个项目:PIC32 USB数字音频附件板Demos.zip 它工作正常,但现在我想切掉一些音频控制接口,所以我有一个更简单的音频功能:

USB拓扑

该设备似乎根据电路板上的状态LED正确枚举,它出现在设备管理器的音频设备列表中,但它有一个小的黄色感叹号..当我插入设备时,窗口告诉我:"设备驱动程序软件未成功安装"

有人有线索吗?

USB描述符,代码块:

ROM BYTE configDescriptor1[] ={
//CD
0x09,               // Size : 9 Bytes
0x02,               // Configuration Descriptor (0x02)
//0xE4,               // Total length in bytes of data returned   Includes the combined length of all descriptors (configuration, interface, endpoint, and class- or vendor-specific) returned for this configuration.
0xB4,               // Ved simpel Audio Function
0x00,               //      2. Byte af Total Length   // 228
0x03,               // Number of Interfaces: 3
0x01,               // bConfigurationValue, Value to use as an …
Run Code Online (Sandbox Code Playgroud)

embedded audio usb

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

全屏高斯模糊

我想模糊我的iOS应用程序的整个屏幕,我无法使用,UIBlurEffect因为我希望能够控制模糊.所以我正在尝试使用CIGaussianBlur,但我遇到了屏幕边缘的问题.

我正在截取屏幕截图,然后通过一个CIFilterwith 运行它CIGaussianBlur,将CIImage背面转换为UIImage,并在屏幕顶​​部添加新的模糊图像.

这是我的代码:

    let layer = UIApplication.sharedApplication().keyWindow?.layer
    UIGraphicsBeginImageContext(view.frame.size)

    layer!.renderInContext(UIGraphicsGetCurrentContext()!)
    let screenshot = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    let blurRadius = 5
    var ciimage: CIImage = CIImage(image: screenshot)!
    var filter: CIFilter = CIFilter(name:"CIGaussianBlur")!
    filter.setDefaults()
    filter.setValue(ciimage, forKey: kCIInputImageKey)
    filter.setValue(blurRadius, forKey: kCIInputRadiusKey)

    let ciContext = CIContext(options: nil)
    let result = filter.valueForKey(kCIOutputImageKey) as! CIImage!
    let cgImage = ciContext.createCGImage(result, fromRect: view.frame)

    let finalImage = UIImage(CGImage: cgImage)


    let blurImageView = UIImageView(frame: view.frame)
    blurImageView.image = finalImage
    blurImageView.sizeToFit() …
Run Code Online (Sandbox Code Playgroud)

core-graphics gaussian core-image ios swift

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

轻松访问Instagram用户的公开个人资料

我正在构建一个简单的osx应用程序,它将从我的instagram用户获取我的关注者计数和其他公共可用统计数据,并保持统计数据.我知道有一种方法可以通过API获取用户数据,如下所示:

https://api.instagram.com/v1/users/self/?access_token=ACCESS-TOKEN
Run Code Online (Sandbox Code Playgroud)

但我想避免获取访问令牌的麻烦......

我知道有很多方法可以获取其他公共信息,例如获取用户最近的媒体:

https://www.instagram.com/USERNAME/media/
Run Code Online (Sandbox Code Playgroud)

有没有人知道获取用户公开个人资料信息的类似方法,如下所示 - 关注者数量和帖子数量?

rest instagram instagram-api

6
推荐指数
0
解决办法
991
查看次数

交互过渡不是线性的

我正在玩自定义和交互式视图控制器转换UIPercentDrivenInteractiveTransition.我正在构建一个以模态方式呈现卡片(其他视图控制器)的应用程序.我已经进行了自定义转换,UIViewControllerAnimatedTransitioning这使得卡片视图控制器的动画效果与标准模型演示风格非常相似.

func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
    {...}
    let fullScreenFrame = transitionContext.finalFrame(for: cardVC)
    let offsetFrame = cardVC.view.frame.offsetBy(dx: 0, dy: cardVC.view.frame.height)
    let finalFrame = presenting ? fullScreenFrame : offsetFrame
    cardVC.view.frame = presenting ? offsetFrame : fullScreenFrame
    containerView.addSubview(cardVC.view)

    UIView.animateKeyframes(
        withDuration: transitionDuration(using: transitionContext),
        delay: 0,
        options: UIViewKeyframeAnimationOptions.calculationModeLinear,
        animations: {
            UIView.addKeyframe(
                withRelativeStartTime: 0,
                relativeDuration: 1,
                animations: { [weak self] in
                    guard let strongSelf = self else { return }
                    backgroundView.alpha = strongSelf.presenting ? 1 : 0
            })

            UIView.addKeyframe(
                withRelativeStartTime: 0,
                relativeDuration: …
Run Code Online (Sandbox Code Playgroud)

interactive transitions uiviewanimation ios swift

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