小编rpe*_*ich的帖子

在UITableView上显示重新排序控件时启用"滑动到删除"

我希望允许重新排序UITableViewCells并通过滑动删除删除,但不能通过红色删除圈.

- (void)loadView
{
    [super loadView];
    [table setEditing:YES animated:NO];
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Perform delete here
    }
}

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
    // Perform move here
}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleDelete;
}

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

另外,我已经尝试禁用编辑模式并且-[UITableViewCell setShowsReorderControl:YES]没有运气就打电话.

图片http://booleanmagic.com/uploads/ReorderNotDelete.png

iphone uitableview uikit gesture

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

哪个移动系统适合程序员?

我使用Palm Treo 650已有几年了.现在我正在考虑在iPhone,黑莓和Windows手机中购买新的.看来windows mobile对我来说是最好的.因为我有.NET开发的经验,我认为.net框架紧凑不会离我的知识太远.

除了电话,消息,我用它来检查电子邮件,新闻和互联网.我也非常有兴趣开发一些有用的小程序.但看起来花哨的iphone和推送黑莓手机的邮件也很酷.

要考虑移动节目和个人使用,这是程序员移动系统的最佳选择吗?

iphone android blackberry smartphone windows-mobile

9
推荐指数
4
解决办法
944
查看次数

UIScrollView - (bounces = NO)似乎覆盖(pagingEnabled = YES)

我有一个带有分页的UIScrollView(所以典型的模型带有UIPageControl并在页面之间左右拖动/轻弹),我的工作正常.奇怪的是,当我想摆脱弹跳(这样你不能在左侧和右侧的UI后面看到黑色)时,突然分页不再有效.

换句话说,当:

scrollView.pagingEnabled = YES;
scrollView.bounces = YES;
Run Code Online (Sandbox Code Playgroud)

一切正常,除了我不喜欢页面(0)和页面(长度-1)的弹跳.但是当我这样做时:

scrollView.pagingEnabled = YES;
scrollView.bounces = NO;
Run Code Online (Sandbox Code Playgroud)

它停止在每个页面上捕捉到位,而是将所有页面一起视为一个长页面.所以看起来由于某种原因,分页依赖于弹跳,只要我能以某种方式阻止弹跳就可以了.那么,还有另一种摆脱它的方法吗?或者有什么我做错了吗?

编辑: 解决方案:

@interface PagingScrollView : UIScrollView
@end

@implementation PagingScrollView

- (id)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame])
    {
        self.pagingEnabled = YES;
        self.bounces = YES;
    }
    return self;
}

- (void)setContentOffset:(CGPoint)offset
{
    CGRect frame = [self frame];
    CGSize contentSize = [self contentSize];
    CGPoint contentOffset = [self contentOffset];

    // Clamp the offset.
    if (offset.x <= 0)
        offset.x = 0;
    else if (offset.x > contentSize.width - frame.size.width) …
Run Code Online (Sandbox Code Playgroud)

iphone paging user-interface uiscrollview bounce

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

NSData到NSString转换问题!

我得到一个HTML文件作为NSData,需要解析它以提取一些信息.我的方法是使用UTF8编码将其转换为NSString(html具有非英文字符,例如俄语) - 它失败了.我用过这样的东西:

NSString *respData = [NSString stringWithUTF8String:[theData bytes]];
Run Code Online (Sandbox Code Playgroud)

但它返回零.

唯一真正奏效的是

[NSString stringWithCString:[theData bytes] length:[theData length]];
Run Code Online (Sandbox Code Playgroud)

但是当它遇到俄罗斯人物时,例如它会返回jibrish.

然后我的下一个方法是解析数据的字节数组,提取我需要的字节,并以某种方式将它们转换为NSString.我试过这样的事情:

-(NSString *)UTF8StringFromData:(NSData *)theData{
 Byte *arr = [theData bytes];
 NSUInteger begin1 = [self findIndexOf:@"<li>" bArr:arr size:[theData length]]+4;
 NSUInteger end1 = [self findIndexOf:@"</li></ol>" bArr:arr size:[theData length]];
 Byte *arr1 = (Byte *)malloc(sizeof(Byte)*((end1-begin1+1)));
 int j = 0;
 for (int i = begin1; i < end1; i++){
  arr1[j] = arr[i];
  j++;
 }
 arr1[j]='\0';
 NSData *temp = [NSData dataWithBytes:arr1 length:j];
 return [[NSString alloc] initWithData:temp encoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud)

iphone encoding objective-c nsstring nsdata

6
推荐指数
2
解决办法
5970
查看次数

UIWebView中的iPhone键盘不会消失

我有一个加载HTML表单的UIWebView.

当我选择文本字段时,键盘出现.

当我输入并点击"Go"时,表单会被提交并下一页加载,但键盘不会消失,它会停留在屏幕上.

摆脱键盘的唯一方法是按下键盘上的"完成"按钮或按下表单中的HTML提交按钮.

点击Go按钮后键盘是否可以消失?

谢谢!

html iphone dom uiwebview

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

Java .charAt(i)比较问题

为什么在将char与另一个char进行比较时,还必须从字符串中获取?例如;

这不起作用

   while(i < t.length() && zeroCount < 5) {
        if(t.charAt(i) == 0){
            zeroCount++;
        }
        i++;
    }
Run Code Online (Sandbox Code Playgroud)

这也不是

char zero = 0;

      while(i < t.length() && zeroCount < 5) {
            if(t.charAt(i) == zero){
                zeroCount++;
            }
            i++;
        }
Run Code Online (Sandbox Code Playgroud)

我设法让它运作的唯一方法就是这样......

String zeros = "0000000000";

      while(i < t.length() && zeroCount < 5) {
            if(t.charAt(i) == zeros.charAt(i)){
                zeroCount++;
            }
            i++;
        }
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释我是否做错了什么,或者像前2个例子那样做是不可接受的.如果是这样,为什么?

java string comparison char

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

iPhone SDK应用程序中的NSThread,NSTimer和AutoreleasePools

我想在iPhone中创建一个我想使用NSThread的appilication.我用了创建了一个线程

[NSThread detachNewThreadSelector:@selector(doThread:)
                             toTarget:self
                           withObject:nil];
Run Code Online (Sandbox Code Playgroud)

我希望我的一个线程将处理所有的触摸和其他用户交互,第二个线程处理NSTimer.所以,在doThread()中,我已经分配了NSTimer,

-(void) doThread:(NSString *)poststring {

    NSLog(@"create thread:");

    [lock lock];
    T1 = [NSTimer scheduledTimerWithTimeInterval:(5)            
     target : self
     selector:@selector(onTimer)
     userInfo : nil
     repeats : YES];
     NSLog(@"after timer");

    usleep(1);
    [lock unlock];
}

In onTImer,

-(void)onTimer

{
    NSLog(@"in timer");

}
Run Code Online (Sandbox Code Playgroud)

现在我无法调用NSTimer的onTimer方法.但我可以看到日志中打印出"after timer".是不是我在线程中无法使用NSTimer?

这也是我执行时可以得到的.

NSAutoreleaseNoPool(): Object 0xd15880 of class __NSCFDate autoreleased with no pool in place - just leaking
Stack: (0x305a2e6f 0x30504682 0x30525acf 0x27b5 0x3050a79d 0x3050a338 0x926ae155 0x926ae012)
Run Code Online (Sandbox Code Playgroud)

请帮助我.谢谢.

iphone cocoa multithreading timer objective-c

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