小编Jes*_*ica的帖子

UITableView在保持已经被提取的同时插入更多行

下面是我用来获取和解析Feed的不同页面的函数.

- (void)getFeed:(NSInteger) pageNumber
{
    collectedData = [[NSMutableData alloc] init];
    NSString *urlStr =[NSString stringWithFormat:@"http://sitename.com/feed/?paged=%d", pageNumber];
    NSURL *url = [NSURL URLWithString:urlStr];
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    conn = [[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:YES];
}
Run Code Online (Sandbox Code Playgroud)

当用户向下滚动到tableview的底部时,我使用以下函数来访问feed的第二页,依此类推,递增计数器:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    float endScrolling = scrollView.contentOffset.y + scrollView.frame.size.height;
    if (endScrolling >= scrollView.contentSize.height)
    {
        counter ++;
        [self getFeed:counter];
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当它不是在已经获取的项目下面加载它时,它会重新加载tableview以显示新的页面项目,而旧的页面项目将消失.我想在现有页面下面加载新的页面项目以进行无限滚动.我怎样才能做到这一点?

iphone uitableview uiscrollview ios

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

UIWebView内部UIScrollView内容大小

我必须在里面添加UIWebView一些按钮和标签UIScrollView.我已经看到很多关于如何添加UIWebView内部的问题UIScrollView但不幸的是他们无法帮助我完成我的任务.所以请不要将其标记为重复或其他内容.

从理论上讲,这个问题可以通过以下步骤解决:

1)制作UIWebView子视图UIScrollView.

2)调用setScrollEnabled:NOUIWebView禁用其本土滚动.

3)设置内容的大小UIScrollViewUIWebView内部加载的HTML字符串的大小UIWebview.

我正在使用iOS 6和StoryBoards.我添加了UIWebView作为子视图UIScrollView.

然后在我webViewDidFinishLoad,我使用了以下内容:

 NSString *webHeight = [webView stringByEvaluatingJavaScriptFromString:@"document.height;"];
 NSLog(@"WebView Height %@", webHeight);
Run Code Online (Sandbox Code Playgroud)

这给了我WebView的高度.

在StackOverFlow上,我遇到了以下内容.

    CGRect frame = webView.frame;
    frame.size.height = 1;
    webView.frame = frame;
    CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
    frame.size = fittingSize;
    webView.frame = frame;

    NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);
Run Code Online (Sandbox Code Playgroud)

然后我已将大小设置UISCrollView为大小UIWebView:

mainScrollView.contentSize = …
Run Code Online (Sandbox Code Playgroud)

iphone xcode uiwebview uiscrollview ios

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

UISplitViewController在故事板中隐藏/取消隐藏MasterView

我有一个简单的iPad应用程序,MasterviewController有一个tableview和一个包含UIWebView的DetailViewController.然后我在我的Storyboard中拖放了一个SplitViewController,将它与我的Master和Detail控制器连接起来.在MasterViewController中我使用以下内容:

- (void) awakeFromNib
{
    self.splitViewController.delegate = self;
}

- (BOOL) splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

目前看起来如下:

在此输入图像描述

一切都很好.我想要做的是使用DetailViewController左上角的按钮隐藏和取消隐藏MasterViewController,就像iPad Mail应用程序一样.

我发现了一些与此问题相关的问题,但他们并没有像我一样只是在Storyboard中拖动它并编写几行代码来创建SplitView,所以不要将它标记为重复或类似的东西.

注意:请不要建议使用MGSplitViewController或任何其他第三方库.提前致谢.

MasterViewController嵌入在导航控制器中.虽然DetailViewController上面有一个手动添加的顶栏,因为当在SplitView中添加全部内容时,它会丢失顶部的导航栏.我所知道的是,我可以在DetailView的顶部栏上创建一个IBAction按钮,但不知道如何触发隐藏和取消隐藏功能.

xcode objective-c ipad uisplitviewcontroller ios

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

在UISplitView中选择导航后,DetailView消失

我在项目中面临一个小问题.我有一个简单的IPad应用程序,在Lanscape方向使用SplitView.MasterViewController是一个tableview,而DetailView是WebView,如下所示:

在此输入图像描述

上图导致以下结果:

在此输入图像描述

之后,我把整个东西放在ECSlidingViewController里面.点击MasterViewController中的"菜单"按钮将显示侧面菜单,如下所示:

在此输入图像描述

现在我可以点击菜单中的其他选项,让我们说我已经在菜单中点击了"联系人",关联的视图控制器将出现如下所示:(此视图控制器没有任何详细视图)

在此输入图像描述

到目前为止一切都很好,正是我想要的!现在,当我再次点击"菜单"按钮以显示菜单并再次选择"导航"以显示桌面视图时,问题就开始了.点击"导航"时,它会显示MasterView,但会隐藏DetailView,如下所示:

在此输入图像描述

除此之外,点击上面tableivew中的任何条目将导致程序崩溃,并在控制台中显示以下消息:

*在声明失败- [UIStoryboardReplaceSegue执行],2013年3月30日/SourceCache/UIKit_Sim/UIKit-2380.17/UIStoryboardBuiltInSegues.m:63 13:59:58.179 19IPadIPad [5806:C07]*终止应用程序由于未捕获的异常'NSInternalInconsistencyException' ,原因:"找不到一个拆分视图控制器祖先'’,在执行分割视图控制器替换赛格瑞(标识符'pushLink’)与目的地'’"***第一掷调用堆栈:(0x217b012 0x16bce7e 0x217ae78 0x1152665 0xa57349 0xa48b99 0xa48c14 0x6b0249 0x6b04ed 0x10ba5b3 0x213a376 0x2139e06 0x2121a82 0x2120f44 0x2120e1b 0x1d587e3 0x1d58668 0x600ffc 0x24bd 0x23e5)的libc ++ abi.dylib:终止叫做抛出一个异常

有人可以调查问题并告诉问题可能在哪里.提前致谢.

更新:

在聊天时与用户交谈后,我点击菜单中的导航后,出现的下一件事只是主视图和实际上没有加载splitview.看起来这是问题,但我不知道如何解决这个问题.

更新:

ECSlidingView如何与SplitView集成

在收到评论询问ECSlidingView如何连接到项目和SplitView后,我正在更新问题.

我创建了一个名为'MainSplitViewController'的类,它继承自UISplitViewController,并在身份检查器的故事板中将它与splitView连接起来.我也给它了"SplitTop"的故事板ID.

然后在我的InitialViewController中,我将SplitView称为topviewcontroller,如下所示:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@"SplitTop"];

    }
Run Code Online (Sandbox Code Playgroud)

当您在MasterViewController上按下"Menu"按钮时,会出现ECSlidingView菜单,如上图所示.该菜单按钮使用IBAction来显示ECSlidingView:

- (IBAction)revealMenu:(id)sender {

    [self.slidingViewController anchorTopViewTo:ECRight];

}
Run Code Online (Sandbox Code Playgroud)

xcode uinavigationcontroller ipad uisplitviewcontroller ios

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

图像持久性和延迟加载与Dispatch_Async冲突

我正在使用提要阅读器,我正在通过使用nsxmlparser解析rss提要来完成它.我还有从CDATA块中获取的缩略图对象.

-(void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSString *someString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
    NSString *storyImageURL = [self getFirstImageUrl:someString];

    NSURL *tempURL = [NSURL URLWithString:storyImageURL];

    NSData *tempData = [NSData dataWithContentsOfURL:tempURL];
    thumbnail = [UIImage imageWithData:tempData];

    });
}
Run Code Online (Sandbox Code Playgroud)

我使用归档和编码和解码方法来保存图像和其他tableview对象.

问题是,当我按原样使用上面的代码时,它不会保留图像,而其他tableview对象(如标题和发布日期)仍然存在.但是当我使用上面没有dispatch_async的代码时,它开始持久化图像但锁定用户界面.

如何在不锁定用户界面的情况下保留图像?

请不要回答一些库存储和缓存图像或Apple的延迟加载示例.谢谢

更新:

根据提供的答案以及斯坦福在iTunes中关于多线程的讲座后,我已经实现了以下代码:

  NSString *someString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
    NSString *storyImageURL = [self getFirstImageUrl:someString];
    NSURL *tempURL = [NSURL URLWithString:storyImageURL];

    dispatch_queue_t downloadQueue = dispatch_queue_create("image downloader", NULL);

    dispatch_async(downloadQueue, ^{
        NSData *tempData = [NSData dataWithContentsOfURL:tempURL];

        dispatch_async(dispatch_get_main_queue(), ^{
            thumbnail = [UIImage imageWithData:tempData];
        }); …
Run Code Online (Sandbox Code Playgroud)

objective-c uiimageview grand-central-dispatch ios

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

UITableView单元格模糊读取项目

我有一个简单的iOS应用程序项目,我一直在努力.tableview显示从Web服务(rss feed)获取的条目,并点击其中一个segue到Web视图.

使用以下内容,我正在检查项目是否已被读取,如果是,则使用setAccessoryType设置复选标记以指示该项目已被读取:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    ItemFeed *entry = [[channel items] objectAtIndex:[indexPath row]];

    [[MyFeedStore sharedStore] markItemAsRead:entry];
    [[[self tableView] cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryCheckmark];

}
Run Code Online (Sandbox Code Playgroud)

上面的代码导致以下结果:

在此输入图像描述

我想要的是细胞被模糊以表明它已被阅读.我将来自TechCrunch iPhone应用程序的以下图像作为我想要的示例:

在此输入图像描述

提前致谢.

更新: 我尝试更改didSelectRowAtIndexPath中的文本颜色,但它不起作用:

ItemsViewCell *cell = (ItemsViewCell *)[tableView dequeueReusableCellWithIdentifier:@"ItemsCell"];
cell.titleLabel.textColor = [UIColor redColor]; //Red color is just for checking right now
Run Code Online (Sandbox Code Playgroud)

xcode objective-c uitableview ios

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

NSCoding坚持UIImage

我在与此主题相关的stackoverflow上看到了不同的问题.有人说不NSCoding符合,UIImage其他人说用iOS 5,它确实符合.

我想在我的应用程序中保留图像.我正在使用encodedecode方法和一切(标题,标签等)是持久的,但不是图像.

- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:title forKey:@"title"];
    [aCoder encodeObject:link forKey:@"link"];
    [aCoder encodeObject:creator forKey:@"creator"];
    [aCoder encodeObject:pubDate forKey:@"pubDate"];
  //  [aCoder encodeObject:thumbnail forKey:@"thumbnail"];
    [aCoder encodeObject:UIImagePNGRepresentation(thumbnail) forKey:@"thumbnail"];
}

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super init];
    if (self)
    {
        [self setTitle:[aDecoder decodeObjectForKey:@"title"]];
        [self setLink:[aDecoder decodeObjectForKey:@"link"]];
        [self setCreator:[aDecoder decodeObjectForKey:@"creator"]];
        [self setPubDate:[aDecoder decodeObjectForKey:@"pubDate"]];
        [self setThumbnail:[aDecoder decodeObjectForKey:@"thumbnail"]];        
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

我也在使用UIPNGRepresentation但不起作用.有人可以帮我弄这个吗.

谢谢.

iphone xcode uiimageview uiimage ios

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