我UICollectionView在单元格内部有标签,可以定期自动更改.当此更新触发时,我调用reloadDataUICollectionView并设置单元格以更改背景颜色[UICollectionViewCell setHighlighted:].
问题是如果用户按住某个单元格然后进行更新,则当用户释放该单元格时会保持突出显示并且也不能再进行选择.
我注意到dequeueReusableCellWithReuseIdentifier:forIndexPath:reloadData之后在单元格上调用setHighlighted.
我也试过reloadSections:而不是reloadData,这解决了细胞被"卡住"的问题,但是当它被调用时会导致细胞淡出并进入细胞.
将呼叫置于内部performBatchUpdates:似乎也无法解决问题.
使用NSKernAttributeName它时在每行的末尾放置一个空格,有什么方法可以解决这个问题吗?我可以将属性设置为:
NSRange(location: 0, length: self.text!.characters.count-1)
Run Code Online (Sandbox Code Playgroud)
但我不想为每一行设置这个.
这是我正在使用的游乐场的测试代码
//: Playground - noun: a place where people can play
import UIKit
import XCPlayground
var text = "Hello, playground\nhow are you?"
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.paragraphSpacing = 50
paragraphStyle.alignment = NSTextAlignment.Left
paragraphStyle.lineBreakMode = NSLineBreakMode.ByTruncatingTail
let attributes = [
NSParagraphStyleAttributeName: paragraphStyle
, NSKernAttributeName: 20
]
let attributedString = NSAttributedString(string: text, attributes: attributes)
let label = UILabel()
label.attributedText = attributedString
label.numberOfLines = 0
label.textColor = UIColor.greenColor()
label.backgroundColor = UIColor.orangeColor()
label.sizeToFit()
label.center = CGPoint(x: …Run Code Online (Sandbox Code Playgroud) 我有一个项目有许多不同的构建配置,一个开发者帐户有 4 个,另一个有 3 个,每个都有生产、alpha 和 beta 构建配置,第一个有调试配置。所有 7 个都有不同的包 ID
每个开发者帐户都使用自己的一组 Apple Pay 商家 ID 申请支付设置。
我收到一个错误,即一个构建配置的配置文件缺少对另一个开发者帐户的商家 ID 的支持,反之亦然,如果我从另一个开发者帐户中删除构建配置,它们可以正常工作,但是当它们都在项目中时,就会出现错误.
有解决方法吗?我是否错过了告诉构建配置仅使用它自己的商家 ID 的内容?
我从我的MainViewController调用UIImagePickerController(sourceTypeCamera)作为modalViewController.但是,UIImagePickerController不会将屏幕填满顶部,如附带的图像所示.
知道是什么导致这个,以及如何解决?
我有UICollectionView一些相互重叠的细胞.
我将它们设置zIndex在UICollectionViewLayout子类中,UICollectionViewLayoutAttributes因此它们以可视方式显示在所需的顺序中.触摸均匀的命中区域按预期工作,当敲击单元的重叠区域时zIndex,通过该collectionView:didSelectItemAtIndexPath:方法具有更高的单元格.
我转换到UICollectionViewFlowLayout子类,当我转换回第一UICollectionViewLayout个子类zIndex时,在点击重叠区域时,并不总是选择具有更高的单元格.
进一步调查显示,子视图中UICollectionViewCells 的顺序UICollectionView是确定敲击哪个单元格.
我已经写了一个重新排序子视图的方法,但这看起来有点像黑客.
根据细胞在视觉上的显示方式,是否有更好的方法让UICollectionView细胞返回预期的索引路径collectionView:didSelectItemAtIndexPath:?
我将图像视图传递给需要图像视图大小的init方法.然后调用convertRect:toView:
- (id) initWithImageView:(UIImageView*) imageView {
self = [super init];
if (self) {
CGRect imageViewFrame = [[imageView superview] convertRect: imageView.frame toView: self.view];
}
}
Run Code Online (Sandbox Code Playgroud)
这被称为:
MyViewController *viewController = [[MyViewController alloc] initWithImageView:imageView];
viewController.delegate = self;
[self.tabBarController presentViewController:viewController animated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)
然后是imageViewFrame
(origin = (x = 0, y = -120.22867049625003), size = (width = 750, height = 750))
Run Code Online (Sandbox Code Playgroud)
imageView有一个框架
frame = (0 -60.1143; 375 375);
Run Code Online (Sandbox Code Playgroud)
它的超级视图有一个框架
frame = (0 0; 375 254.5);
Run Code Online (Sandbox Code Playgroud)
为什么它会扩大到x2?
在iPhone 6 plus(3x)模拟器上进一步测试使imageViewFrame成为可能
(origin = (x = 0, y = …Run Code Online (Sandbox Code Playgroud) 我在objective-c中有一些导致EXC_BAD_ACCESS错误的递归块代码.
- (void) doSomethingWithCompletion:(void (^)())completion {
if (completion) {
dispatch_async(dispatch_get_main_queue(), completion);
}
}
- (void) testBlocks {
NSString *testString = @"hello";
__block NSInteger count = 0;
__block __weak void (^weak_block)(NSString *);
void(^strong_block)(NSString *);
weak_block = strong_block = ^(NSString *str) {
[self doSomethingWithCompletion:^{
NSLog(@"number: %zd", count);
if (++count < 10) {
weak_block(str);
}
}];
};
strong_block(testString);
}
Run Code Online (Sandbox Code Playgroud)
错误发生在weak_block(str)上,我假设是因为它在调用dispatch_async时被释放.当它用__block声明时,调用strong_block(str)就像这样:
__block void(^strong_block)(NSString *);
Run Code Online (Sandbox Code Playgroud)
导致警告'强调'捕获'strong_block'在此块中强烈可能导致保留周期'.
所以我改变了testBlock方法,不使用弱引用,如下所示:
- (void) testBlocks {
NSString *testString = @"hello";
__block NSInteger count = 0;
__block void (^inner_block)(NSString *);
void(^strong_block)(NSString …Run Code Online (Sandbox Code Playgroud) recursion objective-c grand-central-dispatch objective-c-blocks
我有一个专为Android开发的Unity应用(v5.2.4),正在寻求对Android(v6.0.1)上的“拨打和管理电话”的许可。做一些研究,似乎它可能与READ_PHONE_STATE有关。
因此,在构建apk之后,我取消了READ_PHONE_STATE权限,将其重新打包,消息不再出现。
我不确定100%是否将READ_PHONE_STATE放入应用中,团结论坛说READ_PHONE_STATE是在unity v5.2中删除的。
该应用程序还使用Urban飞艇,对READ_PHONE_STATE进行grep显示城市飞艇bin文件。
$ grep "READ_PHONE_STATE" -Rl .
./Submodules/ua-unity-plugin/build/intermediates/lint-cache/api-versions-6-23.0.1.bin
Run Code Online (Sandbox Code Playgroud)
我想知道的是,将许可放入清单中是什么?
android unity-game-engine android-manifest android-permissions android-6.0-marshmallow
我有一个Node二叉树类,如下所示:
class Node<T: Equatable> {
let value: T
let left: Node<T>?
let right: Node<T>?
init(value: T, left: Node<T>? = nil, right: Node<T>? = nil) {
self.value = value
self.left = left
self.right = right
}
}
Run Code Online (Sandbox Code Playgroud)
这些值必须是相等的。
我可以这样测试公平性:
let a = Node(value: 8)
let b = Node(value: 7)
let c = a.value > b.value
Run Code Online (Sandbox Code Playgroud)
效果很好,c: true
但是当我编写一个使用节点公平性的通用函数时,我收到错误:
func isBinaryTree<T>(node: Node<T>) -> Bool {
if let leftNode = node.left {
guard leftNode.value < node.value else {
return false …Run Code Online (Sandbox Code Playgroud) 我有一个UILabel的子类,其属性lineSpacing设置如下:
var lineSpacing = CGFloat(20.0)
Run Code Online (Sandbox Code Playgroud)
当我在这里使用它时,它会推送文本,即使它没有用于任何东西,我删除了除该属性之外的所有代码:
class CustomLabel : UILabel {
var lineSpacing = CGFloat(20.0)
}
Run Code Online (Sandbox Code Playgroud)
并且它仍然是推高了,我改变了属性的名称,并将其固定它,我只是想知道,这是从我无法访问来lineSpacing从UILabel
regularLabel.lineSpacing
Run Code Online (Sandbox Code Playgroud)
给出错误.
可能重复:
标头变量的obj-c重复符号
我的项目中有多个.m和.mm文件.我可以在我喜欢的.m文件中包含这个.h文件(那个dosent有一个相应的.m或.mm文件)但是当我把它包含在一个以上的.mm文件中时,我得到了重复的符号链接器错误.
同样在.h文件中,我用预处理器命令包围了内容(这些是在obj-c中被尊重吗?)这里看起来像是这样的:
#ifndef _CONFIG_H_
#define _CONGIF_H_
CGFloat WIDTH, HEIGHT;
// other similar code...
#endif
Run Code Online (Sandbox Code Playgroud)
我在WIDTH和HEIGHT上得到重复的符号错误
ios ×6
objective-c ×4
swift ×3
iphone ×2
android ×1
applepay ×1
c ×1
cocoa-touch ×1
equatable ×1
generics ×1
header-files ×1
recursion ×1
reloaddata ×1
subclass ×1
uikit ×1
uilabel ×1
uistatusbar ×1
uiview ×1
xcode ×1
z-index ×1