我想扩展一个框架类(我不想直接编辑源代码),并使其符合NSCoding
.
基本上,这是我所处的情况的简化:
/* Can't be edited. */
class Car: NSObject {
var color: String?
}
/* Can be edited */
extension Car: NSCoding {
init(coder aDecoder: NSCoder) {
}
func encodeWithCoder(aCoder: NSCoder) {
}
}
Run Code Online (Sandbox Code Playgroud)
问题是init(coder aDecoder: NSCoder)
,根据头文件,a designated initializer
(这不是很奇怪吗?不应该是convenience initializer
?).但是,文档说扩展无法添加新的指定初始化程序.
我的英语不完美,也许我错过了一些东西......或者它真的不可能?
我之前已经问过这个问题,但我似乎无法在Apple的文档中找到相关信息; 也许你们有些人做过.
很多Objective-C代码都在.h
文件中使用了跨文件常量#define
.其他人在文件中使用.m
with常量的方法.extern
.h
我理解差异,包括优点和缺点,但Apple是否说明在iOS开发中使用哪一个?
我对自动布局很新,我对如何动画视图感到困惑.
我读了很多,我知道你必须坚持约束,编辑它,并将其包装layoutIfNeeded
在一个UIView
动画块中.
但是当谈到这样做时,我有点失落.如果有人可以解释我这个动画是如何完成的,我会很高兴.
我认为它可能使用a UIPanGestureRecognizer
来改变constant
前导空间到容器约束,但它可能使用UIDynamics(对于右边的反弹效果?).
我有一个UIView
(让我们称之为superview)包含另一个UIView
(让我们称之为子视图).
我想添加一个,CALayer
以便在我的超级视图上显示,但在我的子视图下.换句话说,我的子视图的背景应该覆盖图层.
我看过addLayer:below:
其他人,但我不确定如何使用它.谢谢.
编辑:我的不好,我在superview和subview之间有另一种观点,我正在弄乱它.多谢你们 !
当用户在地图中选择注释时,我会显示带有信息的底部视图,例如google地图应用.我在地图的代表中显示它:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
Run Code Online (Sandbox Code Playgroud)
当用户取消选择它(通过在地图上的任何位置录制)时,我隐藏了我的底部视图.这是在相反的委托方法中完成的:
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
Run Code Online (Sandbox Code Playgroud)
它运作良好,我很高兴.但是,如果用户选择第二个注释(即:他点击第一个注释,然后点击另一个注释,同时不首先取消选择注释),我不想隐藏我的底部视图然后再次显示它.我只想改变它的信息.
然而,随着mapView:didDeselectAnnotationView:
被称为前 mapView:didSelectAnnotationView:
,我无法弄清楚如何检测我上面描述的情况.
我的问题是:如何检测用户选择第二个注释或者,我该如何以其他方式解决此问题?
我想访问获取某个时间点的变换比例的值.这是动画创作:
CABasicAnimation *grow = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
grow.toValue = @1.5f;
grow.duration = 1;
grow.autoreverses = YES;
grow.repeatCount = HUGE_VALF;
[view.layer addAnimation:grow forKey:@"growAnimation"];
Run Code Online (Sandbox Code Playgroud)
我希望,例如当用户按下按钮时,视图的当前大小.记录帧或边界始终返回常量值.任何帮助将非常感激 !
我被困在看起来微不足道的东西上,但我真的不明白发生了什么.
我正在使用iOS 7 SDK进行编译,并且无法使状态栏变得透明.它完全是黑色的.在我的.plist中,Status bar style
是Transparent black style (alpha of 0.5)
.我已经尝试了所有其他选项,但我无法让它工作.
我仍然需要支持iOS 6,但我希望iOS 7状态栏默认是透明的,对吗?
什么可能导致这个?
谢谢
这是我的配置:
Pod X
:链接MyProjectSharedCode
,声明类SomeClass
(在Objective C中)MyProjectExtension
:今天扩展,与之共享数据 MyProject
MyProject
:配置的Companion应用程序 MyProjectExtension
MyProjectSharedCode
:在通用代码嵌入式框架MyProject
和MyProjectExtension
.用途SomeClass
.我无法让它发挥作用.我试过了 :
PodX.h
中MyProjectSharedCode.h
,但它会导致编译器错误:包含框架模块内的非模块化头
任何帮助/潜在客户将不胜感激.
在我的Mac上看起来很奇怪:
$> cat main.c
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>
int main(int ac, char **av) {
for (int i = 0; i < ac; i++)
printf("%s\n", av[i]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
$> gcc main.c -std=c99
$> valgrind ./a.out hello my friends
Run Code Online (Sandbox Code Playgroud)
这是结果:
==725== Memcheck, a memory error detector
==725== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==725== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==725== Command: ./a.out hello my friends
==725==
--725-- ./a.out:
--725-- dSYM directory is missing; …
Run Code Online (Sandbox Code Playgroud) 我试图重现我们现在到处都可以看到的视差效果,每当你拉下一个滚动视图时,它背后会显示一个图像(见这个问题).
互联网上有很多解决方案,但我试图让它仅使用自动布局.几天前我看到有人让它在闪电谈话中工作,但我想我没有给予足够的重视......
我让它在iOS 7下工作,但是,在iOS 6下,图像视图并没有坚持到顶部.这是我现在所处的示例项目:DCParallaxHeader.
另一个问题是,有没有办法根据屏幕的大小使底部视图大小的动态?(因为它包含在scrollview中,我们必须使用约束提供contentSize吗?).
ios ×7
objective-c ×6
autolayout ×2
calayer ×2
macos ×2
swift ×2
animation ×1
annotations ×1
c ×1
cocoapods ×1
frameworks ×1
ios7 ×1
memory-leaks ×1
mkmapview ×1
nscoding ×1
statusbar ×1
uiview ×1
valgrind ×1
xcode ×1