小编Cyr*_*lle的帖子

选择单元格时,UITableViewCell子视图消失

我正在实现一个颜色选择表视图,用户可以在其中选择10种颜色(取决于产品).用户还可以选择其他选项(如硬盘容量......).

所有颜色选项都在他们自己的tableview部分中.

我想在textLabel左侧显示一个小方块,显示实际颜色.

现在我正在添加一个简单的方形UIView,给它正确的背景颜色,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:RMProductAttributesCellID];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:RMProductAttributesCellID] autorelease];
        cell.indentationWidth = 44 - 8;

        UIView *colorThumb = [[[UIView alloc] initWithFrame:CGRectMake(8, 8, 28, 28)] autorelease];
        colorThumb.tag = RMProductAttributesCellColorThumbTag;
        colorThumb.hidden = YES;
        [cell.contentView addSubview:colorThumb];
    }

    RMProductAttribute *attr = (RMProductAttribute *)[_product.attributes objectAtIndex:indexPath.section];
    RMProductAttributeValue *value = (RMProductAttributeValue *)[attr.values objectAtIndex:indexPath.row];
    cell.textLabel.text = value.name;
    cell.textLabel.backgroundColor = [UIColor clearColor];

    UIView *colorThumb = [cell viewWithTag:RMProductAttributesCellColorThumbTag];
    colorThumb.hidden = !attr.isColor;
    cell.indentationLevel …
Run Code Online (Sandbox Code Playgroud)

iphone uitableview ios

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

如何在Swift中将UITextField键盘类型更改为电子邮件

在objective-c中,我可以说以下内容.

[self.promoTextField setKeyboardType:UIKeyboardTypeEmailAddress];
Run Code Online (Sandbox Code Playgroud)

我试着谷歌搜索它,但只是想方设法在objective-c中做到这一点.

uitextfield swift

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

自定义UIFont基线已移位

我遇到了自定义UIFonts的问题.我加载其中的6个(常规/粗体/ regularItalic/boldItalic中的字体A,浓缩/浓缩变量中的字体B).

但是,这是渲染时的内容: 在此输入图像描述

前两行是正常的,但最后一行表现出基线问题.

我已经尝试在FontLab中更改字体的UPM,上升器,下行器,x高度,以便它匹配第一个字体的值(正确呈现),但无济于事.我已经尝试将字体格式从OTF转换为TTF,没有运气.无论我尝试什么,它总是以这种方式呈现.

有任何人对此有经验吗?

truetype opentype uifont ios

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

UITableViewCell内的水平UIScrollView

我正在尝试创建与用于查看屏幕截图的AppStore应用程序完全相同的效果:在UITableView中,我有UITableViewCell的自定义子类.其中一个旨在显示某些产品的预览,比如4个图像.我希望它们以与AppStore呈现应用程序截图相同的方式显示:在水平UIScrollView内部及其附加的UIPageControl.

所以我将我的UIScrollView和我的UIPageControl添加到我的UITableViewCell中,就像这样:

@implementation phVolumePreviewCell
- (id)init {
    if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kVolumePreviewCellIdentifier]) {
        [self setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
        [self setSelectionStyle:UITableViewCellSeparatorStyleNone];

        previews = [[NSMutableArray alloc] initWithCapacity:4];
        for (int i = 0; i < 4; i++) {
            [previews addObject:@"dummy"];
        }

        scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero];
        [scrollView setPagingEnabled:YES];
        [scrollView setBackgroundColor:[UIColor grayColor]];
        [scrollView setIndicatorStyle:UIScrollViewIndicatorStyleBlack];
        [scrollView setShowsHorizontalScrollIndicator:YES];
        [scrollView setBounces:YES];
        [scrollView setScrollEnabled:YES];
        [scrollView setDelegate:self];
        [self.contentView addSubview:scrollView];
        [scrollView release];

        pageControl = [[UIPageControl alloc] initWithFrame:CGRectZero];
        [pageControl setNumberOfPages:[previews count]];
        [pageControl setBackgroundColor:[UIColor grayColor]];
        [self.contentView addSubview:pageControl];
        [pageControl release];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

(注意:我在这里使用虚拟数据填充"预览",只是为了使[预览计数]有效;我想查看scrollView的滚动指示器仅用于测试目的,我稍后会隐藏它们). …

iphone scroll uitableview uiscrollview

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

如何解除用presentModalViewController打开的视图控制器:

我提出了一个视图控制器presentModalViewController:,现在如何关闭/关闭它?

objective-c uiviewcontroller modalviewcontroller ios

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

iPhone:在没有越狱的情况下向/ etc/hosts添加条目

对于我的开发过程,我需要访问VPN后面的Web服务器并且没有DNS条目.我在4.x上做的是编辑iPhone上的/ etc/hosts,并将其添加到hosts文件中.

现在我正处于5.0 beta版,并且现在不想为了这个目的而越狱.

有没有办法我可以添加一行到/ etc/hosts,只是为了开发目的(最终,分发应用程序不需要这个hack),没有越狱?我可以使用其他方法(例如,在应用程序启动时通过某种未知方式声明虚假DNS条目)吗?

iphone hosts-file ios

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

可以使用Xcode作为Javascript IDE吗?

我正在开发一个专为在iPhone/iPad上运行而设计的Javascript密集型网络应用程序.它也适用于所有Webkit浏览器(Safari + Chrome).

我有一个由许多JavaScript文件组成的自制MVC框架:每个视图一个,每个控制器一个,许多"帮助"类.

我还有一堆LESS文件,一个"main"包括每个视图的每个LESS文件(例如,如果我有一个UIListView.js,我也有一个UIListView.less).

目前我正在使用MacVim和Less.app,并且在我真正需要使用开发人员工具进行"硬核"调试时,在iPhone/iPad模拟器,真正的iPhone/iPad,有时还有Safari或Chrome上进行测试.我的所有文件都存储在我的~/Sites/projectX文件夹中,我使用Mac的内置Web服务器浏览.

开发时这没关系,我的index.htm引用了很多小文件但是因为我在我的Intranet上通过WiFi无关紧要.

我想要实现的是一种更"以项目为导向"的方法.就像我在Xcode中开发iOS项目一样,我想将XCode用于我的所有开发需求,将所有源文件保存在一个独立的目录中~/Sites,比如说~/Desktop/projectX.我想有两个配置(调试和发布)用于"构建和运行":

  • "debug"配置只会编译main .less文件(包括所有小的.less文件),将JS + CSS + HTM文件复制到某个目录(〜/ Sites/projectX_debug),以及所有图形资源.然后根据所选的"子配置",启动iPhone模拟器,iPad模拟器,Safari或Chrome,清除其缓存(通过AppleScript?)并打开index.htm

  • 将所有JS文件粘合在一起并缩小它们的"发布"配置,编译和缩小.less文件,更改index.htm以仅引用粘合的JS,然后在发送所有之前使用pngout/pngcrush/whatever优化所有PNG存档到本地目录(〜/ Sites/projectX_release)或通过sftp存档到我的生产服务器.

我相信我可以使用XCode 4的构建阶段,甚至可以使用GNU makefile或某种预处理器来实现(如果不是全部),但是我迷失在哪里开始.

有人已经有这种设置使用Xcode做除了Mac/iOS开发之外的其他事情,但是仍然使用大多数IDE传统的构建阶段/ makefile的"经典"概念吗?

(一个可接受的解决方法是简单地创建一个bash脚本来处理它 - 我已经可以自己管理它,但我真的想使用集成的XCode功能,只需按Cmd-R"编译"并运行我的在调试模式下的项目).


ide xcode build-process makefile

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

如何使用ldid?

我试图在iOS 5.1/iPhone 4s(越狱)上运行未签名的应用程序.我做了什么:

  1. 禁用XCode中的代码签名.

  2. 内置未签名的iPhone应用程序.

  3. 通过SSH将其复制到我的iPhone到位置/User/me/development/HelloWorld.app

  4. 现在我尝试模拟其签名以在iPhone上运行此应用程序.我运行以下命令:

.

cd /User/me/development
chmod -R 777 HelloWorld.app
ldid -S HelloWorld
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

util/ldid.cpp(567): _assert(78:arch != NULL)
Run Code Online (Sandbox Code Playgroud)

这种错误的可能原因是什么,现在要修复它?

iphone xcode code-signing jailbreak ios

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

适用于iOS的类似CSS的样式类

我正在为我的iOS应用程序的本机控件实现类似CSS的样式引擎,以避免从plist中读取一大堆样式属性并在每个控件上应用每一个.

(编辑:不,我不想要UIWebView,我需要自定义本机控件.我不想实现纯CSS,只是看起来像CSS的东西,并使用简单的CSS.)

说我有一个像这样结构的plist:

closeButtonStyle = "background:transparent;font:Georgia/14;textColor:#faa"
titleLabelStyle  = "background:transparent;font:Helvetica/12;textAlignment:left"
Run Code Online (Sandbox Code Playgroud)

你可以很容易想象我在这里填充了什么样的属性.

到目前为止,一切正常,我有一个UIStyle类解析这样的声明并将所有找到的值存储在其ivars中; 我也有类别UIView,UILabel,UIButton,...只申报一个-(void)setStyle:(UIStyle *)style方法.仅当定义了样式变量时,此方法才应用样式变量.

正如我所说,一切正常.

我唯一的问题是关于样式字符串的解析.我选择使用NSScanner,但我不确定它是否是最佳选择,并希望得到您的意见.

为了记录,这是我实现我的方式UIStyle:

- UIStyle.h

typedef struct {
    BOOL frame:1;
    BOOL font:1;
    BOOL textColor:1;
    BOOL backgroundColor:1;
    BOOL shadowColor:1;
    BOOL shadowOffset:1;
    BOOL textAlignment:1;
    BOOL titleEdgeInsets:1;
    BOOL numberOfLines:1;
    BOOL lineBreakMode:1;
} UIStyleFlags;

@interface UIStyle: NSObject {
    UIStyleFlags         _has;
    CGRect               _frame;
    UIFont              *_font;
    UIColor             *_textColor;
    UIColor             *_backgroundColor;
    UIColor             *_shadowColor;
    CGSize               _shadowOffset;
    UITextAlignment      _textAlignment;
    UIEdgeInsets …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c styling ios

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

调度队列和异步RNCryptor

这是在iOS上使用RNCryptor异步解密大文件的后续操作

我已经设法用这篇文章中描述的方法异步解密一个大的下载文件(60Mb),由Calman在他的回答中纠正.

它基本上是这样的:

int blockSize = 32 * 1024;
NSInputStream *cryptedStream = [NSInputStream inputStreamWithFileAtPath:...];
NSOutputStream *decryptedStream = [NSOutputStream output...];

[cryptedStream open];
[decryptedStream open];

RNDecryptor *decryptor = [[RNDecryptor alloc] initWithPassword:@"blah" handler:^(RNCryptor *cryptor, NSData *data) {
    NSLog("Decryptor recevied %d bytes", data.length);
    [decryptedStream write:data.bytes maxLength:data.length];
    if (cryptor.isFinished) {
        [decryptedStream close];
        // call my delegate that I'm finished with decrypting
    }
}];

while (cryptedStream.hasBytesAvailable) {
    uint8_t buf[blockSize];
    NSUInteger bytesRead = [cryptedStream read:buf maxLength:blockSize];
    NSData *data = [NSData dataWithBytes:buf length:bytesRead];

    [decryptor addData:data];
    NSLog("Sent %d …
Run Code Online (Sandbox Code Playgroud)

objective-c grand-central-dispatch ios rncryptor

7
推荐指数
2
解决办法
3053
查看次数