我有一个简单的视图(图片的左侧),我需要创建一些覆盖(图片的右侧)到这个视图.这个叠加应该有一些不透明度,所以下面的视图仍然是部分可见的.最重要的是,这个叠加层应该在它的中间有一个圆孔,所以它不会覆盖视图的中心(见下图).
我可以轻松创建一个这样的圆圈:
int radius = 20; //whatever
CAShapeLayer *circle = [CAShapeLayer layer];
circle.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0,radius,radius) cornerRadius:radius].CGPath;
circle.position = CGPointMake(CGRectGetMidX(view.frame)-radius,
CGRectGetMidY(view.frame)-radius);
circle.fillColor = [UIColor clearColor].CGColor;
Run Code Online (Sandbox Code Playgroud)
像这样的"完整"矩形覆盖:
CAShapeLayer *shadow = [CAShapeLayer layer];
shadow.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, view.bounds.size.width, view.bounds.size.height) cornerRadius:0].CGPath;
shadow.position = CGPointMake(0, 0);
shadow.fillColor = [UIColor grayColor].CGColor;
shadow.lineWidth = 0;
shadow.opacity = 0.5;
[view.layer addSublayer:shadow];
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将这两个层组合在一起,以便创建我想要的效果.任何人?我已经尝试了所有的东西......非常感谢你的帮助!

我UITableViewCell在我的内部使用自定义UITableView.这些中UITableViewCell的每一个都很高,UITextField顶部包含一个.
当用户点击UITextField以编辑它时,会出现一个键盘并UITableView自动滚动,以便单元格位于屏幕顶部.
问题是,它滚动UITableView到底部UITableViewCell,而不是顶部.当UITableViewCell高和编辑时,UITextField它位于顶部,所以你看不到UITextField.我知道如何以UITableView编程方式滚动,但我只是不知道如何禁用这种自动滚动,以便我可以UITableView自己滚动.我怎样才能做到这一点?
我正在使用故事板,当我按下某个按钮(或调用功能)时,我试图隐藏主导航控制器的顶部栏.我知道我必须从故事板(使用标识符)初始化一个引用导航控制器的对象,但是当我将setNavigationBarHidden消息发送到这个新创建的对象时,屏幕上并没有真正发生.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UINavigationController *navController = (UINavigationController*) [storyboard instantiateViewControllerWithIdentifier:@"MyNavController"];
[navController setNavigationBarHidden:YES animated:YES];
Run Code Online (Sandbox Code Playgroud)
有谁知道问题是什么?
有没有办法获得某种类的属性数组?例如,如果我有这样的界面
@interface MyClass : NSObject
@property (strong,nonatomic) UILabel *firstLabel;
@property (strong,nonatomic) UILabel *secondLabel;
@end
Run Code Online (Sandbox Code Playgroud)
我可以在不知道名字的情况下获得实施中的标签参考吗?
@implementation MyClass
-(NSArray*)getListOfAllLabels
{
?????
}
@end
Run Code Online (Sandbox Code Playgroud)
我知道我可以轻松地完成它[NSArray arrayWithObjects:firstLabel,secondLabel,nil],但我想用某种类枚举来做for (UILabel* oneLabel in ???[self objects]???)
我非常喜欢foursquare设计场地细节视图的方式.特别是地图位置在"标题"的视图中......它是如何完成的?细节显然是一些uiscrollview(也许是uitableview?)并且在它后面(在标题中)有一张地图所以当你向上滚动地图时,随着滚动视图反弹而被发现...有没有人知道如何做到这一点?

我正在寻找最简单,最干净的方法来验证Swift中的电子邮件(String).在Objective-C中我使用了这个方法,但是如果我将它重写为Swift,我在创建谓词时会收到错误"无法解析格式字符串".
- (BOOL) validateEmail: (NSString *) candidate {
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:candidate];
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为iOS构建自己的信号和未捕获的异常处理程序.为此,我使用以下两个函数:
NSSetUncaughtExceptionHandler(/*handler*/);
Run Code Online (Sandbox Code Playgroud)
和
signal(/*signal const*/, /*signal handler*/);
Run Code Online (Sandbox Code Playgroud)
我的问题是我无法使用EXC_BAD_ACCESS信号.是否有一些信号常量(如SIGABRT,SIGBUS)来捕获EXC_BAD_ACCESS?如果不是,我该如何处理?一些崩溃分析工具(lika PLCrashReporter,Crashlytics等)可以追踪它......
在我的iOS4 +应用程序中,我在几个地方使用AES加密,整个应用程序必须非常安全.为了做到这一点,我必须在这个应用程序中硬编码几个键,然后当我需要加密某些东西时随机选择...
我的问题是如何存储这些私钥?使用硬编码是否安全NSString?要么
#define SecretKeyString @"febd9a24d8b65c1c787d50a4ed3619a9"
Run Code Online (Sandbox Code Playgroud)
如果用户越狱iPhone安装了这个应用程序,他不能得到那些硬编码的密钥吗?我怎样才能最有效地隐藏它们?
谢谢你的任何建议......
我们正在尝试在HTML页面中创建一个超链接,该超链接应该打开预定义的短信 - 当用户在我们的页面上点击此链接时,SMS应用程序应该打开预定义的数字和正文.我们能够成功设置数字,但我们无法设置此短信的正文.可能吗?
我们到目前为止尝试的链接是:
<a href="sms:123456789?body=sometext">sms link</a>
非常感谢您的帮助!
我在UIScrollView中有一个文本字段,我想在用户开始编辑时显示一个清除按钮.此外,当用户点击UIScrollview的背景(但不是文本字段)时,我需要隐藏键盘.显示清除按钮不是问题,问题是当点击清除按钮时键盘被隐藏并且文本字段不会被清除.显然问题在于手势识别器,因为当单击清除按钮时,处理此方法的方法会被触发(但是在轻触文本字段时不会触发).这是我的代码:
//adding gesture recognizer so i can hide keyboard when user taps scrollview
- (void) textFieldDidBeginEditing:(UITextField *)textField
{
if (self.tapOutside == nil) self.tapOutside = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textFieldTouchOutSide:)];
[self.scrollView addGestureRecognizer:self.tapOutside];
}
//This hides keyboard BUT IS ALSO CALLED WHEN CLEAR BUTTON IS TAPPED
- (void)textFieldTouchOutSide:(id)sender
{
[self.textfield resignFirstResponder];
}
//NEVER GETS CALLED
- (BOOL) textFieldShouldClear:(UITextField *)textField {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题?也许更好的方法来添加手势识别器?我想不出没有优雅的解决方案......非常感谢...
ios ×10
objective-c ×4
xcode ×4
uiscrollview ×3
iphone ×2
uitextfield ×2
calayer ×1
class ×1
encryption ×1
foursquare ×1
href ×1
html ×1
mkmapview ×1
nspredicate ×1
object ×1
quartz-core ×1
security ×1
sms ×1
storyboard ×1
swift ×1
uitableview ×1