小编QLa*_*Lag的帖子

使用iOS 7重用UIPickerView中的视图

编辑12-14-2015:这个问题再次在iOS 7,iOS 8,iOS 9上频繁报道....我认为Apple不再需要这种控制了,应该禁止我们使用它而不是让这样的专业窃听器

我使用UIPickerView和从Xib加载的自定义视图.我正在使用这种方法

-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row 
    forComponent:(NSInteger)component reusingView:(UIView *)view
Run Code Online (Sandbox Code Playgroud)

从UIPickerViewDelegate重用我的视图.

使用iOS 6,我的UIPickerview完美运行,我的视图可以重复使用.

从iOS 7开始,reusingView总是为nil,所以我需要为每一行加载NIB(我有250行).我的观点正在做一些处理,所以它可以占用一小部分内存,但x250 =大内存泄漏.

为了确定问题所在,我用UILabel做了一个简单的项目:

-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {

    UILabel *label = (UILabel *)view;
    if(view == nil) {
        label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, pickerView.frame.size.width, 76)];
    }
    else {
        NSLog(@"*******************************************************");
    }
    NSLog(@"Current inndex : %i",row);
    label.text = [NSString stringWithFormat:@"TITRE %i", row];
    return label;
}
Run Code Online (Sandbox Code Playgroud)

使用iOS 6,我的视图可以正确重用:

2013-12-17 14:27:25.395 EssaiReusedViewPicker [261:907]当前的指数:220 2013-12-17 14:27:25.396 EssaiReusedViewPicker [261:907]*******************************************************2013-12-17 14:27: 25.397 EssaiReusedViewPicker [261:907]当前的指数:221 2013-12-17 14:27:25.404 EssaiReusedViewPicker …

uipickerview ios ios7

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

如何在Interface Builder中使用带有属性文本的SF字体

我在Xcode 9.x上,我想在UILabel上使用属性文本(在InterfaceBuilder中).

我想设置:系统字体(San Fracisco)和一些粗体风格的单词.但它不起作用(斜体有效,但不大胆 ......).

我不能选择系统字体(旧金山专业版/显示版),除非我在Xcode项目中导入所有旧金山字体(但它很重:15Mb!)

你觉得怎么样?谢谢.

xcode fonts interface-builder nsattributedstring ios

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

HTML5 Canvas 支持和 Android Webview

我需要在我的应用程序中绘制图表。为此,我使用 RGraph(http://www.rgraph.net/);它允许使用 Javascript 绘制交互式图表。我将我的 javascript 代码放在应用程序资产中的 HTML 文档中,并从 ViewPager 中的片段调用它。

这是 HTML 和 javascript 代码:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<html>
<head>    
    <script src="./libraries/RGraph.common.core.js" ></script>
    <script src="./libraries/RGraph.common.dynamic.js" ></script>
    <script src="./libraries/RGraph.common.tooltips.js" ></script>
    <script src="./libraries/RGraph.common.effects.js" ></script>
    <script src="./libraries/RGraph.pie.js" ></script>
    </head>
<body background="../transparent.png"> 

    <canvas id="cvs" width="420" height="400">[No canvas support]</canvas>
           
    <script>
    
        function CreateGradient (obj, color)
        {
            return RGraph.RadialGradient(obj, 200, 150, 95, 200, 150, 125, color, color)
        }
        
        function isCanvasSupported(){
            var test_canvas = document.createElement("canvas");
            var canvascheck=(test_canvas.getContext) ? true : false ;           
          return canvascheck; …
Run Code Online (Sandbox Code Playgroud)

html javascript android canvas webview

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

UITabBarController中的TableView内容插入

我在UITabBarController中有4个UITableViewController.它们都使用相同的UITableViewController类,但在最后3个控制器上,tableView未正确显示:tableView的顶部显示在navigationBar下,而第一个正确显示

嵌入在UITabBarViewController中的第一个UITableViewController(索引0)

索引1,2和3的相同UITableViewController:

我尝试通过以编程方式设置"MCVigilanceSingleColorViewController"类(继承自UITableViewController)中的tableView contentInset来解决问题,但它应用于我的四个控制器(然后我的第一个UITableViewController的tableView现在有一个错误的框架......).

在故事板中,我的4 UITableViewController也使用相同的类,它们都是一样的:我的4个ViewControllers完全相同.第2,第3和第4个控制器是第一个"复制/粘贴"(我刚刚更改了barItemText).然后他们都选中了相同的选项并取消选中.顺便说一句,检查"underTopBard"选项对我显示的控制器没有影响.我不明白为什么他们的显示方式不同.

你帮帮我吗?谢谢.

iphone objective-c uitabbarcontroller uitableview ios

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

Android检查某些平板电脑崩溃时的网络连接

我知道这个主题已经在这里被问过,但我不明白为什么我的代码没有按预期工作.我需要在启动我的应用时检查数据连接,但它在某些平板电脑上崩溃(如Nexus 7),但并非全部崩溃.

我的代码:

public static boolean getNetworkState(Context pContext)
{
    ConnectivityManager connect =  (ConnectivityManager)pContext.getSystemService(Context.CONNECTIVITY_SERVICE);

    if(connect != null)
    {
        if (connect.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting())
        {
            return true;
        }
        else 
        {
            return false;
        }
    }
    else
        return false;
}

public static boolean getWifiState(Context context)
{
    ConnectivityManager connect =  (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if ( connect.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting())
    {
        return true;
    }
    else 
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

连通性检查:

if(Commons.getNetworkState(this) || Commons.getWifiState(this))
        {
            loadData();
        }
        else
        {
            Commons.getConnectivityErrorMessage(this);
        }
Run Code Online (Sandbox Code Playgroud)

通常情况下,如果平板电脑不支持网络连接,"getNetworkState"中的"连接"对象应为空,但似乎并非如此,因为它在线崩溃

 if (connect.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting())
Run Code Online (Sandbox Code Playgroud)

这有什么不对?权限已经写好了

编辑:不幸的是,我没有平板电脑来测试这个问题.我只是在开发者控制台上有用户报告.用户使用Nexus 7报告了以下报告:

java.lang.RuntimeException: Unable to resume activity {com.meteociel.fr/com.meteociel.fr.activities.MeteocielActivity}: java.lang.RuntimeException: …
Run Code Online (Sandbox Code Playgroud)

crash android connectivity tablet

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