小编ani*_*hin的帖子

CALayer带有透明孔

我有一个简单的视图(图片的左侧),我需要创建一些覆盖(图片的右侧)到这个视图.这个叠加应该有一些不透明度,所以下面的视图仍然是部分可见的.最重要的是,这个叠加层应该在它的中间有一个圆孔,所以它不会覆盖视图的中心(见下图).

我可以轻松创建一个这样的圆圈:

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)

但我不知道如何将这两个层组合在一起,以便创建我想要的效果.任何人?我已经尝试了所有的东西......非常感谢你的帮助!

图片

objective-c calayer ios quartz-core

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

在UITableViewCell中编辑UITextField时禁用UITableView的自动滚动

UITableViewCell在我的内部使用自定义UITableView.这些中UITableViewCell的每一个都很高,UITextField顶部包含一个.

当用户点击UITextField以编辑它时,会出现一个键盘并UITableView自动滚动,以便单元格位于屏幕顶部.

问题是,它滚动UITableView到底部UITableViewCell,而不是顶部.当UITableViewCell高和编辑时,UITextField它位于顶部,所以你看不到UITextField.我知道如何以UITableView编程方式滚动,但我只是不知道如何禁用这种自动滚动,以便我可以UITableView自己滚动.我怎样才能做到这一点?

uitableview uiscrollview uitextfield ios

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

故事板 - 以编程方式隐藏导航控制器的顶部栏

我正在使用故事板,当我按下某个按钮(或调用功能)时,我试图隐藏主导航控制器的顶部栏.我知道我必须从故事板(使用标识符)初始化一个引用导航控制器的对象,但是当我将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)

有谁知道问题是什么?

xcode storyboard uinavigationcontroller ios

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

Objective-C中的类属性列表

有没有办法获得某种类的属性数组?例如,如果我有这样的界面

@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]???)

class object objective-c ios

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

新的foursquare会场详细地图

我非常喜欢foursquare设计场地细节视图的方式.特别是地图位置在"标题"的视图中......它是如何完成的?细节显然是一些uiscrollview(也许是uitableview?)并且在它后面(在标题中)有一张地图所以当你向上滚动地图时,随着滚动视图反弹而被发现...有没有人知道如何做到这一点?

在此输入图像描述

xcode uiscrollview mkmapview foursquare ios

17
推荐指数
1
解决办法
6522
查看次数

在Swift中验证电子邮件地址的最佳做法是什么?

我正在寻找最简单,最干净的方法来验证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)

iphone objective-c nspredicate ios swift

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

EXC_BAD_ACCESS自动处理

我正在尝试为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等)可以追踪它......

xcode exception-handling exc-bad-access crash-reports ios

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

在iOS中保存加密密钥的安全方法

在我的iOS4 +应用程序中,我在几个地方使用AES加密,整个应用程序必须非常安全.为了做到这一点,我必须在这个应用程序中硬编码几个键,然后当我需要加密某些东西时随机选择...

我的问题是如何存储这些私钥?使用硬编码是否安全NSString?要么

#define SecretKeyString @"febd9a24d8b65c1c787d50a4ed3619a9"
Run Code Online (Sandbox Code Playgroud)

如果用户越狱iPhone安装了这个应用程序,他不能得到那些硬编码的密钥吗?我怎样才能最有效地隐藏它们?

谢谢你的任何建议......

security iphone encryption objective-c ios

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

带有正文的HTML超链接中的iOS短信方案

我们正在尝试在HTML页面中创建一个超链接,该超链接应该打开预定义的短信 - 当用户在我们的页面上点击此链接时,SMS应用程序应该打开预定义的数字和正文.我们能够成功设置数字,但我们无法设置此短信的正文.可能吗?

我们到目前为止尝试的链接是:

<a href="sms:123456789?body=sometext">sms link</a>

非常感谢您的帮助!

html sms href ios

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

UITextfield的清除按钮在UIScrollView内部隐藏键盘

我在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)

任何想法如何解决这个问题?也许更好的方法来添加手势识别器?我想不出没有优雅的解决方案......非常感谢...

xcode uiscrollview uitextfield ios

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