小编ped*_*uan的帖子

Swift - iOS:更改导航栏的颜色

我正在尝试更改导航栏的颜色,但我发现如果导航器是根导线,那是唯一不可能的.

我正在尝试这个:

self.navigationController?.navigationBar.translucent = true

self.navigationController!.navigationBar.barTintColor = UIColor.blueColor()
Run Code Online (Sandbox Code Playgroud)

我所有的Viewcontrollers都与导航控制器有关.然而,没有任何改变.事实上,我试图从故事板中制作相同的东西,但只有当我在第一个导航器中时才有效.

我试图阅读与此问题相关的所有内容,但一无所获

我可以像这样添加任何项目到导航栏

let HomeImage = UIImage(named: "home")!
    let Home : UIBarButtonItem = UIBarButtonItem(image: HomeImage,  style: .Plain, target: self, action: "home:")
    navigationItem.rightBarButtonItem = Home
Run Code Online (Sandbox Code Playgroud)

ios uinavigation swift

46
推荐指数
4
解决办法
7万
查看次数

ios10:viewDidLoad框架宽度/高度未正确初始化

自升级到XCode8 GM和ios10以来,通过Interface Builder创建的所有视图都没有正确初始化,直到比预期要晚得多.这意味着在viewDidLoad,cellForRowAtIndexPath,viewWillAppear等中,每个视图的帧大小都设置为{1000,1000}.在某些时候他们似乎是正确的,但它为时已晚.

遇到的第一个问题是全面的角落圆角失败:

view.layer.cornerRadius = view.frame.size.width/2
Run Code Online (Sandbox Code Playgroud)

对于依赖于帧大小在代码中进行计算的任何事情,都会出现进一步的问题.

cellForRowAtIndexPath 
Run Code Online (Sandbox Code Playgroud)

对于cellForRowAtIndexPath,帧大小在初始表显示时失败,但滚动后它可以正常工作.willDisplayCell:forRowAtIndexPath也没有正确的帧大小.

我已经对一些值进行了硬编码,但显然这是非常糟糕的代码实践,在我的项目中也是如此.

有没有办法或地方获得正确的框架尺寸?

编辑

我发现使用高度/宽度约束而不是帧宽高度更可靠.这可能会增加需要大量新IBOutlet的开销,以链接项目的高度/宽度约束.

现在我已经创建了一个UIView类,它允许我在没有IBOutlets的情况下直接访问View的高度/宽度约束.对于最小的使用,小循环不应该是一个大问题.对于没有明显创建宽度/高度约束的IB项目,不能保证结果.可能最好为常数返回0,或者更糟.此外,如果您没有高度/宽度约束,并且您的视图基于前导/尾随约束动态调整大小,则这将不起作用.

-viewDidLoad似乎具有正确的帧大小,但如果您在此处进行修改,通常会导致UI的可视更改.

UIView的+ WidthHeightConstraints.h

@interface UIView (WidthHeightConstraints)

-(NSLayoutConstraint*)widthConstraint;
-(NSLayoutConstraint*)heightConstraint;
-(NSLayoutConstraint*)constraintForAttribute:(NSLayoutAttribute)attribute;

@end
Run Code Online (Sandbox Code Playgroud)

UIView的+ WidthHeightConstraints.m

#import "UIView+WidthHeightConstraints.h"

@implementation UIView (WidthHeightConstraints)

-(NSLayoutConstraint*)widthConstraint{
    return [self constraintForAttribute:NSLayoutAttributeWidth];
}
-(NSLayoutConstraint*)heightConstraint {
    return [self constraintForAttribute:NSLayoutAttributeHeight];
}
-(NSLayoutConstraint*)constraintForAttribute:(NSLayoutAttribute)attribute {
    NSLayoutConstraint *targetConstraint = nil;
    for (NSLayoutConstraint *constraint in self.constraints) {
        if (constraint.firstAttribute == attribute) {
            targetConstraint = constraint;
            break;
        }
    }
    return targetConstraint;
}

@end
Run Code Online (Sandbox Code Playgroud)

编辑2

事实证明,上述类别只是部分有效.主要是因为ios似乎自动添加一些额外的高度/宽度约束重复项,类型为NSContentSizeLayoutConstraint,实际上与普通约束的大小不同.NSContentSizeLayoutConstraint也是一个私有类,所以我不能做isKindOfClass来过滤掉那些.我还没有找到另一种有效测试的方法.这很烦人.

objective-c frame autolayout ios10 xcode8

40
推荐指数
3
解决办法
7665
查看次数

在Swift for iOS中沿圆形路径绘制文本

我正在寻找一些关于如何使用Swift2for 在圆形边缘周围绘制简单单线串的最新帮助/提示iOS9.我看到涉及旧ObjC片段的相当陈旧的例子,并且仅限于此OS X.这在自定义UIView子类的drawRect()方法中是否可以在iOS中实现?

drawrect ios swift swift2 swift3

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

iPad/iPhone上的"必需"Html5表单元素不起作用

iPad safari应该符合html5标准,但似乎所需的元素不起作用.任何人都知道为什么,或者有一个不需要大量JavaScript的体面解决方案?

我的代码

<input type=email class=input placeholder="Email" name="email" required>
Run Code Online (Sandbox Code Playgroud)

forms html5 mobile-safari required html-validation

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

IOS禁用键​​盘选项卡箭头

我需要使用JavaScript或甚至是基于Web的应用程序元标记(如果有的话)禁用IOS上的键盘选项卡箭头.

我尝试了一些选项但在选择菜单时遇到了问题.

我也无法将所有tabindex恢复为-1,因为这会损坏桌面和其他设备上的标签功能.

任何帮助,将不胜感激.

这是我为跳转到readonly的字段所做的一个例子.

$(document).ready(function() {

  $('input, textarea, select').on('focus', function() {
    $('input, textarea').not(this).attr('readonly', 'readonly');
    $('select').not(this).attr("disabled", "disabled");
  });

  $('input, textarea, select').on('blur', function() {
    $('input, textarea').removeAttr("readonly");
    $('select').removeAttr("disabled");
  });

});
Run Code Online (Sandbox Code Playgroud)

javascript jquery mobile-safari

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

AVPlayer不会在iOS 10上立即播放视频,而只播放音频

我正在使用AVAssetExportSession创建视频并在完成后播放视频.但是Visual Part不会立即显示但只有音频会立即播放.视觉部分经过一段约20至30秒的延迟后出现.这是我播放视频的代码

-(void)playUrl:(NSURL *)vUrl{

[[NSNotificationCenter defaultCenter] removeObserver:self name:AVPlayerItemDidPlayToEndTimeNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:AVPlayerItemDidPlayToEndTimeNotification object:[_avPlayer currentItem]];


_avAsset=nil;
_avPlayerItem=nil;
_avPlayer =nil;
[_avPlayerLayer removeFromSuperlayer];
_avPlayerLayer=nil;

_avAsset=[AVAsset assetWithURL:vUrl];
_avPlayerItem =[[AVPlayerItem alloc]initWithAsset:_avAsset];
_avPlayer = [[AVPlayer alloc]init]; //WithPlayerItem:_avPlayerItem];
[_avPlayer replaceCurrentItemWithPlayerItem:_avPlayerItem];
_avPlayerLayer =[AVPlayerLayer playerLayerWithPlayer:_avPlayer];
[_avPlayerLayer setFrame:CGRectMake(0, 0, viewAVPlayer.frame.size.width, viewAVPlayer.frame.size.height)];
[viewAVPlayer.layer addSublayer:_avPlayerLayer];
[_avPlayer seekToTime:kCMTimeZero];

[_avPlayer play];

_avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone;



[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(repeatPlayer:) name:AVPlayerItemDidPlayToEndTimeNotification object:[_avPlayer currentItem]];



}
Run Code Online (Sandbox Code Playgroud)

如果有人知道答案,请告诉我.此代码在iOS 9中完美运行,但不是iOS 10.在此先感谢.

objective-c ios avplayer avassetexportsession ios10

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

自动调整UICollectionView标头的大小

我正在尝试为待办事项列表类型的应用制作详细屏幕。这是详细信息屏幕当前的外观:

详细画面

这是UICollectionViewController带有标题的。标头包含2个UILabel对象和1个UITextView对象。这些对象的布局由垂直管理UIStackView。A UIView用于设置白色背景。

我在定义UICollectionReusableView运行时的高度时遇到一些困难。任何建议表示赞赏。

ios uicollectionview uicollectionreusableview swift

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

使用swagger文档在api平台的端点中询问其他GET参数

我有一个symfony项目,在这里我使用api平台。我有一个实体,也有它的数据提供者。我在定义集合终结点的其他参数时遇到麻烦。

实体称为建议。它必须从弹性搜索返回文档集合。

端点是:

/suggestion
Run Code Online (Sandbox Code Playgroud)

该端点侦听其他GET参数:

页面,级别

每次在请求端点时都会读取这两个参数。

在我的SuggestionsCollectionDataProvider.php课堂上,我有:

/**
     * Retrieves a collection.
     *
     * @param string $resourceClass
     * @param string|null $operationName
     * @return \Generator
     */
    public function getCollection(string $resourceClass, string $operationName = null): \Generator
    {
        $query = $this->requestStack->getCurrentRequest()->query;
        // I am reading these two parameters from RequestStack

        // this one is built-in
        $page = max($query->get('page', 1), 1); 

        // this is a custom one
        $level = $query->get('level', 0); 
        ...
Run Code Online (Sandbox Code Playgroud)

在我的SuggestionRepository.php课上:

/**
     * @return \Generator
     */
    public …
Run Code Online (Sandbox Code Playgroud)

yaml annotations symfony swagger api-platform.com

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

设置线帽样式不起作用UIBezierPath

这是我的代码:

    let cross = UIBezierPath()
    cross.move(to: CGPoint(x: skull.bounds.maxX, y: skull.bounds.minY))
    cross.addLine(to: CGPoint(x: skull.bounds.minX, y: skull.bounds.maxY))
    cross.close()
    UIColor.red.set()
    cross.lineWidth = 3.0
    cross.lineCapStyle = .round
    cross.stroke()
Run Code Online (Sandbox Code Playgroud)

我想围绕线的末端,但它仍然是正方形,我应该怎么做?

core-graphics ios uibezierpath swift

5
推荐指数
3
解决办法
3214
查看次数

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

Nette 框架 - 表单向导

我正在尝试在 nette 2.1.2 中创建表单向导。我创建了自己的组件,可以在其中注入 nette 表单。然后在拿铁模板中将表单呈现为各个步骤。

但是,我想在当前步骤中对表单字段进行验证,然后再从这一步切换到另一个步骤。为此,我需要两件事:

  • 在发布表单之前从组件访问 nette 表单字段
  • 手动启动所选表单字段的验证

你能帮我怎么做吗?

php wizard nette latte

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

UIDevice.currentDevice().identifierForVendor!.UUIDString Swift 3迁移

我在swift 2中有以下代码

let deviceid = UIDevice.currentDevice().identifierForVendor!.UUIDString
Run Code Online (Sandbox Code Playgroud)

这无法编译.我尝试了xCo​​de中自动修复的建议,我想出了这个.

 let deviceid = UIDevice.currentDevice.identifierForVendor!.UUIDString
Run Code Online (Sandbox Code Playgroud)

但它仍然无法编译.它说'UUID'类型的值没有成员UUIDString'

swift swift2 swift3 ios10 deviceid

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

今天的小部件在iOS10高度问题迅速

我试图在iOS10中设置今天小部件的高度,但它不起作用.以前在iOS9中工作过.

ios swift

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