小编Lop*_*ope的帖子

在UILabel的NSAttributedString中创建可点击的"链接"?

我一直在搜索这几个小时,但我失败了.我可能甚至不知道我应该寻找什么.

许多应用程序都有文本,在本文中是圆角矩形的Web超链接.当我点击它们UIWebView打开.让我感到困惑的是,他们经常有自定义链接,例如,如果单词以#开头,它也是可点击的,应用程序通过打开另一个视图来响应.我怎样才能做到这一点?是否有可能UILabel或我需要UITextView或其他什么?

hyperlink nsattributedstring uilabel ios uitapgesturerecognizer

220
推荐指数
14
解决办法
19万
查看次数

swift中的UIActionSheet将取消按钮放在iOS 7中

我正在将我的应用程序从目标c重写为Swift,我注意到UIActionSheet在Swift版本中的行为与在obj-c版本中的行为不同.

对象版本

在此输入图像描述

Swift版本

在此输入图像描述

这只是iOS 7上的一个问题,它在iOS 8上运行正常(意味着取消在底部),适用于Swift和Obj-c版本

这是相关的一段代码:

var sheet = UIActionSheet(title: nil, delegate: self, cancelButtonTitle: "Cancel", destructiveButtonTitle: nil)
sheet.addButtonWithTitle("Camera")
sheet.addButtonWithTitle("Photo Library")
sheet.showInView(self.controller.view)
Run Code Online (Sandbox Code Playgroud)

知道怎么解决吗?

uiactionsheet ios swift

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

eclipse中的多个依赖的android项目

我刚开始玩android dev和java + eclipse对我来说很新.我设法创建了简单的项目并在我的设备上运行它.现在我想创建简单的游戏(实际上更多),我很乐意为所有这些游戏使用共享代码库(游戏循环,初始化等等).

问题是我不知道如何正确地做到这一点.我创建了一个名为engine的android项目,其中包含了我需要的所有基本内容,并使其在设备上运行.现在我尝试在名为mygame的同一工作区中创建另一个项目.mygame的主要类(活动)是继承自Activity的EngineApp(我的引擎项目的主要活动)的MyGameApp.

我在属性中的mygame构建路径选项卡中将引擎项目添加到了必需的项目中.问题是当我尝试运行这个项目时,它会在ClassNotFoundException上崩溃,试图找到我的MyGameApp类.

非常感谢任何帮助(或指向解释如何完成的一些文章的指针).几个小时的谷歌搜索没有多大帮助:/

eclipse android

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

如何制作快速填充内存的iPhone应用程序

我经常尝试修复当我将iphone用于其他内存饥饿时发生的错误,它需要释放一些内存,从而从我的应用程序中卸载一些视图.我发现这很难在我需要时进行模拟,所以我决定尝试分配尽可能多的内存并强制我测试的应用程序释放未使用的视图等.

我尝试了一些简单的事情,每隔几百毫秒调用一次,但由于某些原因它没有做任何事情

[[NSData alloc] initWithBytes:malloc(2048 * 1024) length:2048 * 1024];
Run Code Online (Sandbox Code Playgroud)

仪器显示应用程序越来越大,远远超出了iphone的内存容量(分配了数百mbs),但我甚至没有得到内存警告,它根本不会影响其他应用程序.是否有某种安全措施可以防止iphone app形式做这样的事情?或者我对iphone如何工作的假设有些错误?当你面对这个问题时,你如何解决这个问题?

编辑:我在设备上运行我的应用程序,我无法在模拟器上卸载我的视图,即使我模拟内存警告(这有时工作,但很少)

EDIT2:正如bbum指出的问题确实在虚拟分配中,分配后的简单memset做了伎俩

void *data = malloc(1024 * 1024);
memset(data, 0, 1024 * 1024);
Run Code Online (Sandbox Code Playgroud)

iphone memory-management

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

在iphone上同时下载后台

我正在尝试创建将同时处理多个下载的类(我需要下载大量的小文件),并且我遇到了"消失"连接的问题.

我有函数addDonwload,它将url添加到要下载的url列表,并检查是否有可用的免费下载插槽.如果有,它立即开始下载.当其中一个下载完成后,我选择第一个url表单列表并开始新的下载.

我使用NSURLConnection进行下载,这里有一些代码

- (bool) TryDownload:(downloadInfo*)info
{
    int index;
    @synchronized(_asyncConnection)
    {
        index = [_asyncConnection indexOfObject:nullObject];
        if(index != NSNotFound)
        {
            NSLog(@"downloading %@ at index %i", info.url, index);
            activeInfo[index] = info;
            NSURLRequest *request = [NSURLRequest requestWithURL:info.url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15];

            [_asyncConnection replaceObjectAtIndex:index withObject:[[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:TRUE]];
            //[[_asyncConnection objectAtIndex:i] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];           

            return true;
        }
    }

    return false;
}

- (void)connectionDidFinishLoading:(NSURLConnection*)connection
{
  [self performSelectorOnMainThread:@selector(DownloadFinished:) withObject:connection waitUntilDone:false];
}

- (void)DownloadFinished:(id)connection
{
    NSInteger index = NSNotFound;
    @synchronized(_asyncConnection)
    {
        index = [_asyncConnection indexOfObject:(NSURLConnection*)connection];
    }

    [(id)activeInfo[index].delegate performSelectorInBackground:@selector(backgroundDownloadSucceededWithData:) withObject:_data[index]]; …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch

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

InputStream.bytesRemaining小于应该

我有来自十几个来源的大量图像,我正在后台线程下载它们.大多数图像都是在没有问题的情况下下载的,但有2个源会导致问题.他们的所有图像都无法加载.

我使用以下代码下载(和存储)图像:

File f=new File(cacheDir, urlHash);
Bitmap bitmap=null;
InputStream is=new URL(url).openStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = BitmapFactory.decodeStream(new FileInputStream(f), null, null);
Run Code Online (Sandbox Code Playgroud)

Utils.CopyStream:

public static void CopyStream(InputStream is, OutputStream os)
{
    int counter = 0;
    final int buffer_size=1024;
    try
    {
        byte[] bytes=new byte[buffer_size];
        for(;;)
        {
          int count=is.read(bytes, 0, buffer_size);
          if(count==-1) {
              Log.d("tag", counter + " bytes copied");
              break;
          }
          os.write(bytes, 0, count);
          counter += count;
        }
    }
    catch(Exception ex) {
        ex.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试下载此图像http://www.zapakatel.cz/static/deal/7193-1057b.jpg而不是失败.BitmapFactory.decodeStream返回NULL.所有我能找到的可能导致问题的是is.bytesRemaining缺少几千字节:162721 vs …

java android

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