小编Phe*_*ter的帖子

将自定义调色板添加到XCode Interface Builder

我目前的长期项目采用了一系列自定义颜色.在代码中,我们使用类别按名称访问这些颜色.这很有效,但有时候,例如构建笔尖时,这些颜色不会以编程方式设置.

我正在寻找一种方法来定义一组命名的颜色.例如,在为UIView设置背景颜色时,我希望Interface Builder中的下拉列表按名称列出我的自定义颜色.有谁知道实现这一目标的方法?谢谢!

xcode interface-builder ios

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

Android Studio 中缺少“生成签名包/APK”选项

我刚刚为 Flutter 项目设置了一台新的开发机器,需要部署一个 APK 以在 Play 商店上进行测试。

来自 iOS,我不熟悉部署到 Play 商店,但在我的研究中,我发现我需要使用Build > Generate Signed Bundle/APKAndroid Studio 中的选项创建一个密钥存储。我正在使用 Android Studio 北极狐 3.1。Generate Signed Bundle/APK“构建”菜单下或我能找到的其他任何地方都不存在此选项。

Flutter和Android SDK已安装并设置路径。我可以在本地编译和运行以及构建 APK 或 AppBundle,但无法生成 Play 商店提交所需的密钥。

在此输入图像描述

我是否错过了 Android Studio 安装中的设置步骤?由于这是 Android Studio 的最新版本,该选项是否被移动或被其他内容替换?谢谢!

android-studio flutter

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

处理Core Data中的重复条目

我有一个允许用户保存收藏夹的应用程序.我使用Core Data将收藏夹存储为托管对象.我已经编写了一些代码来防止存储重复项的可能性,但我想知道是否有更好的方法来执行此操作.每个喜欢的对象都有一个唯一的ID字段.在下面的代码中,我只是循环并检查ID字段,如果该值已经存在,则将标志值设置为true,并打破循环.

-(BOOL)addFavorite{
    BOOL entityExists = NO;
    if(context){
        // does this favorite already exist?
        NSArray *allFaves = [AppDataAccess getAllFavorites];
        for(Favorite *f in allFaves){
            if([f.stationIdentifier isEqualToString:stID]){
                entityExists = YES;
                break;
            }
        }
        if(!entityExists){
            NSError *err = nil;
            Favorite *fave = [Favorite insertInManagedObjectContext:context];
            fave.stationRealName = riverGauge.name;
            fave.stationIdentifier = stID;
            fave.stationState = @"WV";
            if(![context save:&err]){
                NSLog(@"ERROR: Could not save context--%@", err);
            }
            return YES;            
        }
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

我想知道Core Data是否能够检查添加的对象是否重复.是否有可以处理重复检查的谓词?谢谢!

xcode core-data objective-c ios

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

在Xcode UI Test Target中禁用了录制按钮

我知道已经发布了类似的问题,但是从我的调查来看,还没有发布解决方案,至少没有一个有效.我只在Swift和Obj-C中的示例项目中成功运行了UI测试.

我正在尝试(不成功)将UI测试集成到现有的Xcode Obj-C项目中,这似乎是另一个问题.以下是我采取的步骤:

  1. 在我的项目中创建了一个新的UI测试目标
  2. 确保我正在测试的目标的"启用可测试性"已设置为"是"
  3. 清理,清理构建文件夹,重建应用程序,重新启动Xcode以及我能想到的其他一切.

当我这样做时,测试目标可用但是记录按钮是灰色的(禁用),并且在装订线中没有播放按钮来执行测试.测试类没有任何视觉效果可以表明它是一个测试类.当我将光标放在测试方法中时,记录按钮保持禁用状态.

有什么我遗漏的吗?还有什么要检查可能会阻止UI测试?

xcode ui-testing ios

8
推荐指数
3
解决办法
3006
查看次数

使用自定义表格单元格时"无法识别的选择器已发送到实例"

我已经实现了一个自定义表格单元格,并在表格进入cellForRowAtIndexPath时收到运行时错误("无法识别的选择器发送到实例").尝试实例化自定义单元格时发生错误.我之前已经成功实现了这一目标,但现在错误不会消失.我有一个prtotype单元格,其自定义类属性设置为自定义单元格UITableViewCell子类.这是自定义单元格:

#import "FavoriteCell.h"

@implementation FavoriteCell
@synthesize lblGaugeID, lblMainTitle, bgImage;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    bgImage = [UIImage imageNamed:@"tableCellBG.png"];
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        UIColor *transparentBG = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
        UIColor *foregroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
        //UIColor *shadowColot = [UIColor colorWithWhite:0.75 alpha:1.0];

        CGSize size = self.contentView.frame.size;
        self.backgroundView = [[UIImageView alloc] initWithImage:bgImage];
        self.lblMainTitle = [[UILabel alloc] initWithFrame:CGRectMake(8.0, 0.5, size.width-16, size.height-40)];
        [self.lblMainTitle setFont:[UIFont systemFontOfSize:12.0]];
        [self.lblMainTitle setTextAlignment:NSTextAlignmentLeft];
        [self.lblMainTitle setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
        [self.lblMainTitle setBackgroundColor:transparentBG];

        self.lblGaugeID = [[UILabel alloc] …
Run Code Online (Sandbox Code Playgroud)

objective-c uitableview ios

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

Flutter:如何处理 SliverPersistentHeader 中的 Renderflex 溢出

我有一个包含视频的 SliverPersistentHeader。此视图所需的行为是,当用户向上滚动时,视图应覆盖或最小化视频的大小。视频标题是一个包含 Chewie 视频播放器的小部件。所需的行为会达到某个点,此时我会出现像素溢出,如该动画所示:

在此输入图像描述

当滚动到达某个点时,视频无法再调整大小,从而导致渲染溢出。所需的行为是视频继续调整大小直到消失,或者捕获错误并从视图中隐藏或删除视频。呈现此滚动视图的代码是:

  Widget buildScollView(GenericScreenModel model) {
    return CustomScrollView(
      slivers: [
        StandardHeader(),
        SliverFillRemaining(
          child: Container(
            // color: Colors.transparent,
              decoration: BoxDecoration(
                  border: Border.all(
                    color: Colors.white,
                  ),
                  borderRadius: BorderRadius.only(topRight: radius, topLeft: radius)),
              child: Padding(
                padding: const EdgeInsets.all(20.0),
                child: Text(model.model?.getContentText ?? 'Empty'),
              )),
        )
      ],
    );
  }
Run Code Online (Sandbox Code Playgroud)

StandardHeader 类是一个包含 Chewie 视频的简单小部件。

class _StandardHeaderState extends State<StandardHeader> {
  @override
  Widget build(BuildContext context) {
    return SliverPersistentHeader(
      floating: true,
      delegate: Delegate(
        Colors.blue,
        'Header Title',
      ),
      pinned: true,
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法捕获此错误并隐藏视频播放器?任何人都可以帮忙解决这个问题或向我指出资源吗?谢谢!

flutter flutter-sliver flutter-renderflex-error

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

UIActivityIndi​​catorView没有显示

我有一个带有表视图控制器的应用程序,其中用户选择US状态,调用Web服务并在目标表视图控制器中显示该状态的数据.由于Web服务可能需要一些时间才能完成,因此我需要一个活动指示器.由于不会显示临时数据,我需要同步处理.所以我的任务非常简单:启动活动指示器,调用Web服务,完成后,停止活动指示器.

我显然做错了,没有活动指示器显示.

以下是我的目标表视图控制器的viewDidAppear方法的代码:

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    [self.tableView bringSubviewToFront:spinner];
    spinner.hidesWhenStopped = YES;
    spinner.hidden = NO;
    [spinner startAnimating];
    stateGauges = [[GaugeList alloc] initWithStateIdentifier:stateIdentifier andType:nil];
    [self.tableView reloadData];
    [spinner stopAnimating];
}
Run Code Online (Sandbox Code Playgroud)

标题:

@property (strong, nonatomic) UIActivityIndicatorView *spinner;
Run Code Online (Sandbox Code Playgroud)

GaugeList是进行Web服务调用的对象.

有人能告诉我如何显示活动指示器视图吗?谢谢!

objective-c uiactivityindicatorview ios

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

设置MBProgressHUD的超时

我正在使用MBProgressHUD在下载Web服务数据时显示活动指示器.该应用程序通常用于连接性较差的农村地区,因此我希望能够将HUD的超时设置为10秒(仅为任意数字).我不知道该如何解决这个问题.有人可以提供建议吗?谢谢!

MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:self.view];

NSString *info = [NSString stringWithFormat:@"Loading %@ gauges", self.stateIdentifier];
[hud setLabelText:info];
[hud setDetailsLabelText:@"Please wait..."];
[hud setDimBackground:YES];
[hud setOpacity:0.5f];
[hud show:YES];

[self.view addSubview:hud];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
    stateGauges = [[GaugeList alloc] initWithStateIdentifier:stateIdentifier andType:nil];
    dispatch_async(dispatch_get_main_queue(), ^{
        [self.tableView reloadData];
        [hud removeFromSuperview];
    });
});
Run Code Online (Sandbox Code Playgroud)

objective-c ios mbprogresshud

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

广告横幅阻止UITableView的底部

这是一个UI布局问题.我需要在iPhone应用中的所有视图底部放置横幅广告.横幅广告是共享的,只有在可用时才会加载.

两个UIViewControllers包含占据全屏的UITableViews.我有两个相关的问题,我不知道如何解决.加载横幅广告时,它会隐藏表格视图的底部,阻止用户选择最后几个单元格中的任何一个.此外,右侧索引不再居中并且低于它应该的位置.

显然,如果在广告未加载的情况下有空白空格,Apple会拒绝某个应用(如果我错了,请更正我),因此如果没有广告,则需要将全貌视图全长可用.

有人解决了这个问题吗?什么可能是克服这个问题的最佳做法?谢谢!

objective-c iad

4
推荐指数
2
解决办法
2207
查看次数

类型不符合未定义的协议

在Xcode 6 Beta 2中,我编写了以下类:

class Item : Printable, Hashable {
    var description:String {
     return "..."
    }
    var hashValue:Int {
        return 1
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到一条错误,指出类型'Item'不符合协议'Equatable',即使我还没有尝试实现一个名为'Equatable'的协议.有没有人见过这样的行为?任何解决方案或解决方法?谢谢!

ios swift xcode6

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