小编Wim*_*tra的帖子

将UITableViewCell中的图像调整为不是总高度

目前我试图在我的iPhone应用程序中显示一个简单的表,我使用UITableViewCell的样式UITableViewCellStyleValue1(图像在左边,详细标签右对齐).单元格都具有默认高度(50.0f).在我将图像添加到单元格之前,我将图像的大小调整为40x40,这样它就不是单元格的总高度(我认为看起来很难看).

我这个代码执行此操作:

cell.imageView.image = [UIImage imageNamed:@"icon.png"];
cell.imageView.image = [RootViewController imageWithImage:cell.imageView.image scaledToSize:CGSizeMake(40, 40)];
Run Code Online (Sandbox Code Playgroud)

这一切都非常好,完美无瑕.但我想在iPhone 4上实现这一点(具有更高分辨率的屏幕).问题是,iPhone 4上的所有内容都没有问题,但图像看起来非常像素化.

原因在于屏幕上的所有内容都被夸大以扩展到新的分辨率,也包括图像,所以图像可能应该是80x80.但是当我将它们调整为80x80(原件为120x120)时,由于缩放的原因,它们看起来很大.

有没有办法让我的图像不是表格单元的完整高度,但我希望它们在iPhone 4上的分辨率更高.我应该为此创建一个全新的视图吗?

哎呀,在第一次回复后,我意识到我自己的书面功能缺失了:

+ (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
    UIGraphicsBeginImageContextWithOptions(newSize, NO, [[UIScreen mainScreen] scale]);
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在第一次回复之后,我尝试使用UIGraphicsBeginImageContextWithOptions方法来处理它,但不知何故,这会产生一个空图像.

iphone cocoa-touch ios4

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

更改tabbar控制器中选项卡的viewcontroller

我目前正在开发一个具有TabBarController的应用程序,每个选项卡都包含一个导航控制器.这样在每个选项卡上,我可以通过将viewcontroller推送到导航控制器来显示在视图上选择的行的详细信息.每个视图上面都有一个UINavigationItem.在这个导航项中,我放了一个按钮.

但是现在我想在单击UINavigationItem中的按钮时更改某个选项卡的viewcontroller,但是我要更改的视图(控制器)必须像该选项卡的根视图控制器一样.

所以我不想在导航控制器上推送另一个视图,而只是切换到该视图(在同一个选项卡中)并将其作为根视图控制器.

我找不到一个好方法来实现这一点,实际上让视图正常工作.当我切换视图时,它们要么不释放(这会很好,因为我想将内存使用量保持在最低限度).

解决这个问题的一种方法可能是我向TabBar控制器添加了更多选项卡,并在单击按钮时切换到右侧选项卡,但这是最后的选择.

不确定我是否正确描述了这一点,但我想知道最好的方法是做什么.我的偏好是有3个viewcontrollers并在它们之间切换.

iphone cocoa-touch objective-c ios4

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

SqlConnection InfoMessage不使用BeginExecuteNonQuery

我想从SQL存储过程中打印消息.

如果我使用SYNC选项执行cmd.ExecuteNonQuery连接会触发InfoMessage事件,但是当我使用ASYNC选项执行时,不会触发该事件.

在ASYNC执行时,我没有收到事件的原因吗?

这是我的代码:

 class Program
{
     static string connstring =
        "data source = xyz;initial catalog = abc;user id=abc;password=abc;Asynchronous Processing=True";
    static void Main(string[] args)
    {

        SqlConnection conn = new SqlConnection(connstring);

            conn.InfoMessage += new SqlInfoMessageEventHandler(conn_InfoMessage);
            SqlCommand cmd = new SqlCommand("TMP_PROC", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@TMP_ID", 1);

            try
            {
                Console.WriteLine("connection open");
                conn.Open();
                Console.WriteLine("executing query");
                //cmd.ExecuteNonQuery();
               var result= cmd.BeginExecuteNonQuery(
                    p =>
                    {
                        try
                        {
                            var asyncCommand = p.AsyncState as SqlCommand;
                            Console.WriteLine("Execution Completed");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Error:::{0}", ex.Message);
                        }
                        finally
                        {
                            conn.Close(); …
Run Code Online (Sandbox Code Playgroud)

c# sql-server ado.net

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

GameKit/Peer-to-peer over Internet

对于我正在开发的iOS应用程序,我希望多个手机相互连接,并能够在这些设备之间进行语音聊天.

当两个设备都在同一个网络上时,我就可以使用它.这很简单,我想做的大部分事情都是可能的.

但现在我正在增加互联网支持,这是一件非常麻烦的事情.我将首先尝试使用我设置的小型Web服务来解释我希望如何匹配设备.

服务器

  1. 使用会话模式GKSessionModePeer启动新的GameKit会话
  2. 在我刚刚创建的会话中找到服务器的"对等ID"
  3. 在空闲端口上创建一个新的CFSocketRef,并准备接受连接
  4. 将对等ID和端口号发送到我的Web服务,在外部服务器上运行.

网络服务

  1. Webservice接收信息并将其与ID和客户端的IP地址一起存储在数据库中.
  2. 将ID发送回Server,显示ID

客户

  1. 当用户选择使用GameKit的"在线"功能搜索游戏时,我向用户询问ID(用户应该输入服务器接收的ID).
  2. 客户端连接到提供ID的Web服务.webservice返回有关服务器的会话(IP,PORT,对等ID)的信息.
  3. 用户尝试使用端口信息连接到IP地址,并与服务器建立输入和输出流.

这不起作用,因为我的网络不允许传入连接和随机端口(来自外部网络).

但现在的问题是,我该如何解决这个问题呢?我希望能够在2个设备之间建立对等连接,这些设备可以在同一网络上,也可以在不同的网络上.

是否有框架,示例或任何显示如何执行此操作的内容?我希望能够将数据从设备发送到设备,而不是先将其发送到服务器.

p2p objective-c gamekit ios

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

将DBML导出到SQL脚本

由于硬盘崩溃,我丢失了我正在创建的项目的SQL服务器数据库文件.

我仍然有我在.NET项目中使用的DBML文件,所以我仍然在文件中有数据库结构.

是否可以以某种方式将我的DBML导出到SQL服务器脚本,以在SQL Server中重新创建我的数据库.

.net sql linq sql-server linq-to-sql

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

标签 统计

cocoa-touch ×2

ios4 ×2

iphone ×2

objective-c ×2

sql-server ×2

.net ×1

ado.net ×1

c# ×1

gamekit ×1

ios ×1

linq ×1

linq-to-sql ×1

p2p ×1

sql ×1