小编Bag*_*yer的帖子

在Swift中从nib加载UIView

这是我的Objective-C代码,我用它来为我的自定义加载一个笔尖UIView:

-(id)init{

    NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"myXib" owner:self options:nil];
    return [subviewArray objectAtIndex:0];

}
Run Code Online (Sandbox Code Playgroud)

Swift中的等效代码是什么?

xib uiview swift

140
推荐指数
16
解决办法
17万
查看次数

Angular 2表单验证重复密码

关于验证器与angular2比较字段,请参阅此问题.不幸的是Angular 2改变了一点,所以解决方案似乎不再起作用了.这是我的代码:

import {IonicApp,Page,NavController,NavParams} from 'ionic/ionic'
import {Component} from 'angular2/core'
import {FORM_PROVIDERS, FormBuilder, Validators} from 'angular2/common'
import {ControlMessages} from '../../components/control-messages'
import {ValidationService} from '../../services/validation-service'

@Page({
  templateUrl: 'build/pages/account/register.html',
  directives: [ControlMessages]
})
export class RegisterPage {

  constructor(nav:NavController,private builder: FormBuilder) {
    this.nav = nav
    this.registerForm = this.builder.group({
      'name' : ['', Validators.required],
      'email' : ['',Validators.compose([Validators.required, ValidationService.emailValidator])],
      'password' : ['',Validators.required],
      'repeat' : ['',this.customValidator]
      }
    )        
  }

  register() {    
    alert(this.registerForm.value.password)
  }

  private customValidator(control) {         
    //console.log(this.registerForm.value.password)
    //return {isEqual: control.value === this.registerForm.value.password} …
Run Code Online (Sandbox Code Playgroud)

angular

60
推荐指数
6
解决办法
8万
查看次数

在Android工作室中集成第三方库的最佳方式

我们可以为android找到一些非常好的开源库.我想知道在Android Studio中将它们集成到我们自己的项目中的最佳方法是什么.以下是一些基本方法:

  • 将源代码和资源文件复制到我们自己的项目中.我们需要更改很多代码(包名称和xml中的名称等)
  • 如果提供了jar文件,我只为我的项目创建libs文件夹并复制里面的jar文件.并在模块设置的依赖项中添加jar文件.但不幸的是,我收到了很多错误消息,例如"Gradle:Package com.google.gson不存在".

是否有将第三方源文件或jar文件添加到现有android工作室项目的一般规则?谢谢

android compilation android-studio

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

使用UICollectionView创建书架

我打算在我的一个项目中创建一个书架.基本要求如下:

  • 类似于iBooks书架
  • 很好地支持两种方向
  • 支持各种iOS设备(不同的分辨率)
  • 支持删除和插入项目
  • 支持通过长按手势重新排序项目
  • 在第一行被拉下时显示隐藏的徽标

UICollectionView是我遇到的第一个选项.它可以轻松支持网格单元.所以我用Google搜索并发现了一些非常有用的教程:

Bryan Hansen的UICollectionView自定义布局教程

Mark Pospesel的如何将装饰视图添加到UICollectionView

LXReorderableCollectionViewFlowLayout

结果如下:(请忽略颜色不一致问题,因为我选择的图形尚不完美.)

在此输入图像描述

我做了什么:

  1. 通过创建从LICReorderableCollectionViewFlowLayout继承的类(用于重新排序)创建自定义布局,该类继承自UICollectionFlowLayout
  2. 添加了用于显示徽标的装饰视图
  3. 添加了用于显示书架的装饰视图

但是我遇到了一些问题:

如果项目可以在一个屏幕上显示,我根本无法滚动

然后我添加了以下代码,以使contentize更大

- (CGSize)collectionViewContentSize
{
    return CGSizeMake(self.collectionView.bounds.size.width,      self.collectionView.bounds.size.height+100);
}
Run Code Online (Sandbox Code Playgroud)

然后我就可以滚动了.在这里,我拉下第一行:

在此输入图像描述

您可以看到徽标的装饰视图正常工作.

但是当我拉出最后一排时,我遇到了第二组问题:

在此输入图像描述

您可以看到绿色框部分未添加装饰视图.

书架的装饰视图背景越来越暗.(这里请参考同样的问题

当我重新订购商品时,书架栏有时会移动

在此输入图像描述

我在这里列出了一些重要的代码:

- (void)prepareLayout
{
    // call super so flow layout can do all the math for cells, headers, and footers
    [super prepareLayout];

    NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
    NSMutableDictionary *shelfLayoutInfo = [NSMutableDictionary dictionary];

    // decoration view - emblem
    NSIndexPath *indexPath = [NSIndexPath indexPathForItem:0 inSection:0]; …
Run Code Online (Sandbox Code Playgroud)

ios6 uicollectionview uicollectionviewlayout

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

在Swashbuckle中启用持票人令牌(Swagger文档)

我创建了一个使用个人帐户安全的asp.net webapi应用程序,以便默认启用Bearer令牌.它工作正常,所以我能够在Postman中测试它们没有问题.

当我尝试通过Swashbuckle集成Swagger UI时,问题就出现了.我通过以下方式安装了Swashbuckle:

Install-Package Swashbuckle

然后更改SwaggerConfig.cs:

GlobalConfiguration.Configuration
    .EnableSwagger(c =>
    {
        c.ApiKey("Token")
            .Description("Filling bearer token here")
            .Name("Authorization")
            .In("header");
    }
    .EnableSwaggerUi(c =>
    {
        c.EnableApiKeySupport("Authorization", "header");
    };
Run Code Online (Sandbox Code Playgroud)

启动我的应用程序并填写Bearer令牌:

在此输入图像描述

但是当我运行需要授权的api请求时,它不起作用.这是截图:

在此输入图像描述

承载令牌被添加到标头中的Authorization.但我仍然得到错误401.我想知道是否因为令牌被编码(SPACE被%20取代)?任何的想法?谢谢.

顺便说一句,我想知道如何在我的Swagger文档中添加/ token,以便我可以在Swagger UI中获取令牌.

swagger swagger-ui swashbuckle

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

Swift是否支持隐式转换?

例如,我有以下代码:

    let numberOfBlocks = 3
    let blockWidth = SKSpriteNode(imageNamed: "image.png").size.width
    let padding = 20.0

    let offsetX : Float = (self.frame.size.width - (blockWidth * numberOfBlocks + padding * (numberOfBlocks-1))) / 2
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

'Double'不能转换为'UInt8'

有没有办法隐式转换数据类型(可能只对原始数据类型)?

编辑:

我知道如何通过使用Iducool建议的特定类型的构造函数来进行显式转换.但这对我的问题没什么大帮助,因为我们甚至不知道在哪里添加转换.我简化了我在游乐场的表达:

在此输入图像描述

问题出在"填充"变量,错误信息是

'Double'不能转换为'UInt8'.

所以我做了转换:

在此输入图像描述

那么现在的问题是"blockWidth"变量.

我再次添加了转换:

在此输入图像描述

错误信息是:

类型'UInt8'不符合协议'FloatLiteralCovertible'

最终的工作表达式是:

在此输入图像描述

它简单快捷吗?我不这么认为.

primitive-types implicit-conversion ios swift

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

在 Swift 中为 @Binding var 设置 didSet

通常我们可以didSet在 swift中使用来监视变量的更新。但它不适用于@Binding变量。例如,我有以下代码:

@Binding var text {
   didSet {
       ......
   }
}
Run Code Online (Sandbox Code Playgroud)

但是didSet从来没有被调用过。知道吗?谢谢。

swift swiftui combine

21
推荐指数
2
解决办法
5871
查看次数

将iOS 6设备作为BLE外围设备运行

众所周知,iOS 6支持运行设备(iPhone 4s及更高版本,以及新iPad)作为BLE外设.WWDC 2012 Session 705中有一个名为"高级核心蓝牙"的演示.我问过Apple的源代码.他们发给我一个修改后的源代码版本(BTLE_Transfer_Draft).然后我:

  • 在"外设模式"下在iPhone 5(iOS 6)中运行应用程序并启动"广告"
  • 在"中央模式"下在新iPad(iOS 5.1.1)中运行应用程序

问题是外围设备从未被发现过.所以我使用其他测试应用程序,包括从App Store下载的一些.所有人都未能发现外围设备.我认为问题应该在BTLE_Transfer_Draft中.因为我不确定是否允许我提供整个源代码.所以我只在这里展示"外围模式"部分:

- (void)viewDidLoad {
    [super viewDidLoad];

    // Start up the CBPeripheralManager
    _peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil];
}

- (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral {
    // Opt out from any other state
    if (peripheral.state != CBPeripheralManagerStatePoweredOn) {
        return;
    }

    // We're in CBPeripheralManagerStatePoweredOn state...
    NSLog(@"self.peripheralManager powered on.");

    // ... so build our service.

    // Start with the CBMutableCharacteristic
    self.transferCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID]
                                                                  properties:CBCharacteristicPropertyNotify
                                                                       value:nil
                                                                 permissions:CBAttributePermissionsReadable];

    // Then the service …
Run Code Online (Sandbox Code Playgroud)

peripherals ios core-bluetooth

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

我的ios应用程序总是要求我登录iTunes Store

我正在开发具有IAP功能的ios应用程序.它运作良好.但我今天遇到了一个奇怪的问题.由于某些原因,它总是向我显示要求我"登录iTunes Store"的消息.这是截图:

每次我启动应用程序或从后台恢复时,它始终显示此信息.删除并重新安装应用程序后,它甚至会显示此信息.当我在源代码中设置断点时.没有任何交易,付款代表回调.谁能告诉我原因是什么?这可能是Apple IAP Sandbox的问题吗?(我在其他设备上运行相同的应用程序没有任何问题.我可以购买,在Sandbox中恢复.)

在此输入图像描述

in-app-purchase ios

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

在Mac OS X 10.9(Mavericks)中内置Apache服务器

我想在我的Mac OSX Mavericks中启动我的apache服务器.这是我做的:

  1. 启动终端应用程序
  2. sudo apachectl start
  3. 服务器启动没有问题.但是当我尝试在Web浏览器中打开localhost时遇到以下问题:

您无权访问此服务器上的/.

这是我的/etc/apache2/httpd.conf :(我这里没有改变任何东西)

DocumentRoot "/Library/WebServer/Documents"

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all </Directory>

<Directory "/Library/WebServer/Documents">

    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all

</Directory>
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议可能的原因吗?谢谢

apache webserver osx-mavericks

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