小编Ber*_*rnd的帖子

改变Modal UIActivityViewController的外观

如何更改UIActivityViewController模态共享操作中使用的邮件撰写对象的导航栏的外观?

UINavigationBar  - 错误的色调

UIActivityViewController符合UIAppearance,所以我认为以下工作确实有效,但事实并非如此.导航栏保持默认蓝色.

activityVC.navigationController.navigationBar.tintColor = [UIColor greyColor];
Run Code Online (Sandbox Code Playgroud)

语境:

    - (IBAction)share {
        NSString *textToShare = ...;
        NSURL *url = ...;

        NSArray *activityItems = [[NSArray alloc]  initWithObjects:textToShare,url,nil];

        UIActivity *activity = [[UIActivity alloc] init];
        NSArray *applicationActivities = [[NSArray alloc] initWithObjects:activity, nil];
        UIActivityViewController *activityVC =
        [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
        [activityVC setExcludedActivityTypes:[NSArray arrayWithObjects:                                              UIActivityTypeMessage,UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,UIActivityTypePostToWeibo,                                              UIActivityTypePrint,UIActivityTypeSaveToCameraRoll,
                                              nil]];

        activityVC.navigationController.navigationBar.tintColor = [UIColor greyColor];

        [self presentViewController:activityVC animated:YES completion:nil];
    }
Run Code Online (Sandbox Code Playgroud)

如何将UINavigationBar蓝色的色调更改为灰色.

objective-c modalviewcontroller ios uiappearance uiactivityviewcontroller

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

如何通过点击其调光视图来关闭UIPresentationController

我用a UIPresentationController来显示自定义模态.演示控制器在显示时具有UIView动画显示的调光视图.模态本身是UIViewController添加到表示控制器的容器中的.

问题

我只能[self dismissViewControllerAnimated:NO completion:nil]从嵌入式UIViewController 调用.但我不能这样做UIPresentationController.但这就是调光视图的地方.

我想避免为模态添加额外的不可见视图或NSNotificationCenter尽可能使用.

如何UIPresentationController通过点击其调光视图来解雇?是否有意义?可能吗?

objective-c uiviewcontroller uikit ios uipresentationcontroller

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

将格式化的测量限制为 2 位数字

我想根据测量打印一个字符串,但将其限制为 2 位数字。我为此使用了MeasurementFormatter

var beans:Measurement = Measurement(value: 20.22321, unit: UnitMass.milligrams) // "20.22321 mg"
let formatter = MeasurementFormatter()
formatter.numberFormatter.maximumFractionDigits = 2
let label = formatter.string(from: beans) // 0 lb
Run Code Online (Sandbox Code Playgroud)

我期望20.22 mg的结果,而不是0 lb。我的错在哪里?

measurement ios swift

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

使用“alexa-app”依赖项将 Alexa 技能部署到 AWS Lambda

我写了一个简单的 Alexa 技能。它使用“alexa-app”作为依赖。

var alexa = require('alexa-app');

当我保存并测试我的技能时,我得到以下响应

{
  "errorMessage": "Cannot find module 'alexa-app'",
  "errorType": "Error",
  "stackTrace": [
    "Function.Module._load (module.js:276:25)",
    "Module.require (module.js:353:17)",
    "require (internal/module.js:12:17)",
    "Object.<anonymous> (/var/task/index.js:4:13)",
    "Module._compile (module.js:409:26)",
    "Object.Module._extensions..js (module.js:416:10)",
    "Module.load (module.js:343:32)",
    "Function.Module._load (module.js:300:12)",
    "Module.require (module.js:353:17)"
  ]
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用此“alexa-app”依赖项而不将其烘焙到 zip 文件中。为了加快开发速度,我更喜欢在在线 Lambda 代码编辑器中只使用一个文件。这可能吗?

amazon-web-services alexa aws-lambda alexa-skills-kit

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

如何使基于NSString的切换语句更加高效和可扩展?

我有很多基于按钮的字符串值的切换语句(例如,将箭头图像移动到UIButton的坐标).我意识到我的代码中有很多重复.我想到的一件事是例如使用实际的"切换"功能但不幸的是它只使用int作为切换变量类型而不是字符串.

这是我正在寻求改进的代码示例:

-(void)initAperture{

//Set
if ([[[self dataObject] logAperture] isEqualToString:@"dark"]) {
    [self moveImageView:selectorAperture
              toUIButton:buttonApertureDark
               animated:NO];
} 
if ([[[self dataObject] logAperture] isEqualToString:@"cloudy"]) {
    [self moveImageView:selectorAperture
             toUIButton:buttonApertureCloudy
               animated:NO];
} 
if ([[[self dataObject] logAperture] isEqualToString:@"sunny"]) {
    [self moveImageView:selectorAperture
              toUIButton:buttonApertureSunny
               animated:NO];        
} 
if ([[[self dataObject] logAperture] isEqualToString:@"pinhole"]) {
    [self moveImageView:selectorAperture
              toUIButton:buttonAperturePinhole
               animated:NO];
} 

}
Run Code Online (Sandbox Code Playgroud)

任何改进建议或最佳实践表示赞赏.

objective-c ios

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

限制社交共享选项并为每项服务设置自定义消息

我即将实现一个调用默认模态共享活动视图的共享按钮.

这是我到目前为止所得到的.

NSString *textToShare = [NSString stringWithFormat:@"Looking forward to meet you at %@",[eventItemObject eventName]];;
NSURL *url = [eventItemObject eventWebsiteURL];
NSArray *activityItems = [[NSArray alloc]  initWithObjects:textToShare,url,nil];

UIActivity *activity = [[UIActivity alloc] init];
NSArray *applicationActivities = [[NSArray alloc] initWithObjects:activity, nil];
UIActivityViewController *activityVC =
[[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];

[self presentViewController:activityVC animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

按下共享按钮时会调用此方法.

挑战:

  1. 将共享选项限制为例如Facebook,Twitter,Mail(它现在还显示复制到剪贴板和微博)
  2. 为每个共享方法分配自定义共享消息/字符串.(现在textToShare字符串用于所有服务)

经过一些研究后,我认为这可以用新的SLComposeViewController(在iOS6中)完成,但我不知道在哪里/如何正确调用它.任何实用的建议或例子表示赞赏!

share objective-c social-networking ios

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

Eventkit无法访问日历

我无法使用Eventkit访问设备的日历.我正在使用EKEventEditViewController来呈现用于添加日历条目的视图.

EKEventStore *eventStore = [[EKEventStore alloc] init];
EKEventEditViewController *eventController = [[EKEventEditViewController alloc]init]; 
eventController.eventStore = eventStore;
eventController.editViewDelegate = self;

...

[self presentViewController:eventController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

在模拟器上工作正常,在手机上运行它时会收到以下错误消息(iOS6):"此应用程序无法访问您的日历"

此应用无法访问您的日历

按照建议检查隐私设置不会显示我的应用程序的任何条目.

如何解决这个问题并授予访问权限?

permissions calendar objective-c ios eventkit

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

项目范围配置变量的存储位置?

可能重复:
在iOS应用程序中存储全局常量的位置?

我想将配置变量存储在一个中心位置.变量在运行时不会更改.它们应该可以从项目中的任何类访问.

我目前的方法是使用一个GlobalSettings.h文件,其配置变量定义如下

#define kCacheAge 10.0 //Max. Cache Age in Seconds
#define kNavigationTitleTint colorWithRed:0.443 green:0.471 blue:0.502 alpha:1.0
#define kNavigationTitleFont boldSystemFontOfSize:20.0
Run Code Online (Sandbox Code Playgroud)

......并在我需要的地方加入他们的名字.

缺点:

  • 我需要手动在每个类中包含此GlobalSettings.h文件
  • 我不能将这些常量作为字符串的一部分插入(字符串处理似乎比替换操作更强)

有没有更好的方法来做到这一点,也许避免上述缺点?存储配置变量的最佳实践?

objective-c ios

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

使用Swift语法获取提醒

我试图从EventKit异步获取提醒(EKEntityTypeReminder).我如何在Swift中写这个?

[_store fetchRemindersMatchingPredicate:predicate completion:^(NSArray *reminders) {
    for (EKReminder *reminder in reminders) {
        NSLog(@"Reminder %@",reminder);
    }
}];
Run Code Online (Sandbox Code Playgroud)

...仍在努力适应新的Blocks/Closures语法

reminders ios ekeventstore swift

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

透明的UIButton标题

如何从按钮背景中减去标题文本的形状?

在此输入图像描述

我创建了一个自定义UIButton类.目前添加边框和文本颜色的代码看起来就像这样

layer.borderWidth = 2.0
layer.borderColor = buttonColor.CGColor
layer.cornerRadius = (CGFloat(bounds.height) + paddingVertical * 2.0) / 2.0
setTitleColor(buttonColor, forState: UIControlState.Normal)
Run Code Online (Sandbox Code Playgroud)

关于如何从背景中减去按钮标题形状的任何建议.我是否需要将所有这些渲染为图像或是否有更好的替代方案?

uibutton calayer ios swift

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